Subversion Repositories svn1

Rev

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

Rev 386 Rev 387
Line 1... Line 1...
1
#include "qmdialogloadexternalteams.h"
1
#include "qmdialogloadexternalteams.h"
2
//#include "ui_qmdialogloadexternalteams.h"
-
 
3
#include "QFile"
2
#include "QFile"
4
#include "QTextStream"
3
#include "QTextStream"
5
#include "mainwindow.h"
4
#include "mainwindow.h"
6
#include <QRegExp>
-
 
7
#include <QHBoxLayout>
5
#include <QHBoxLayout>
8
#include <QVBoxLayout>
6
#include <QVBoxLayout>
9
#include <QWidget>
7
#include <QWidget>
10
#include <QHeaderView>
8
#include <QHeaderView>
11
#include <QWebEngineHistory>
9
#include <QWebEngineHistory>
Line 49... Line 47...
49
    }
47
    }
50
    MainWindow::showMessage("Loading External Data");
48
    MainWindow::showMessage("Loading External Data");
51
 
49
 
52
    // Process Each line of the file
50
    // Process Each line of the file
53
    QTextStream in(&file);
51
    QTextStream in(&file);
54
    QRegExp csv_split("\"?,\"?");
-
 
55
    while (!in.atEnd())
52
    while (!in.atEnd())
56
    {
53
    {
57
        QString line = in.readLine();
54
        QString line = in.readLine();
58
        line = line.trimmed();             // Remove leading and training White Space
55
        line = line.trimmed();             // Remove leading and training White Space
59
        line.remove(0xA0);                 // M$ special uglyness
56
        line.remove(QChar(0xA0));          // M$ special uglyness
60
        line.remove(0xC2);                 // M$ special uglyness
57
        line.remove(QChar(0xC2));                 // M$ special uglyness
61
 
58
 
62
        bool has_RefError = hasRefError(line);
59
        bool has_RefError = hasRefError(line);
63
        QStringList parts = splitCsvData(line);
60
        QStringList parts = splitCsvData(line);
64
        insertParts( parts, has_RefError );
61
        insertParts( parts, has_RefError );
65
        
62
        
Line 242... Line 239...
242
        return;
239
        return;
243
 
240
 
244
    int ii = tableWidget->rowCount();
241
    int ii = tableWidget->rowCount();
245
    tableWidget->setRowCount(1 + ii );
242
    tableWidget->setRowCount(1 + ii );
246
 
243
 
-
 
244
    // Reuse a brush
-
 
245
    QBrush brush = QBrush(QColor(0,0,200,50));
-
 
246
    QBrush brushRed = QBrush(QColor(200,0,0,50));
-
 
247
 
-
 
248
 
247
    // Insert Team number
249
    // Insert Team number
248
    QTableWidgetItem *item = new QTableWidgetItem(first);
250
    QTableWidgetItem *item = new QTableWidgetItem(first);
249
    tableWidget->setItem(ii, 0, item );
251
    tableWidget->setItem(ii, 0, item );
250
    parts.removeFirst();
252
    parts.removeFirst();
251
    if ( has_RefError )
253
    if ( has_RefError )
252
    {
254
    {
253
        item->setBackgroundColor(QColor(0,0,200,50));
255
        item->setBackground(brush);
254
        bad_refs++;
256
        bad_refs++;
255
    }
257
    }
256
 
258
 
257
    // Extract Team Name
259
    // Extract Team Name
258
    item = new QTableWidgetItem( parts.value(0) );
260
    item = new QTableWidgetItem( parts.value(0) );
259
    tableWidget->setItem(ii, 1, item );
261
    tableWidget->setItem(ii, 1, item );
260
    if ( hasRefError(parts.value(0)) )
262
    if ( hasRefError(parts.value(0)) )
261
    {
263
    {
262
        item->setBackgroundColor(QColor(0,0,200,50));
264
        item->setBackground(brush);
263
    }
265
    }
264
    parts.removeFirst();
266
    parts.removeFirst();
265
 
267
 
266
    // Extract Team Cat
268
    // Extract Team Cat
267
    item = new QTableWidgetItem( parts.value(0)) ;
269
    item = new QTableWidgetItem( parts.value(0)) ;
268
    tableWidget->setItem(ii, 2, item );
270
    tableWidget->setItem(ii, 2, item );
269
 
271
 
270
    if (config.lookup_class(qPrintable(parts.value(0)) ) <= 0 )
272
    if (config.lookup_class(qPrintable(parts.value(0)) ) <= 0 )
271
    {
273
    {
272
        item->setBackgroundColor(QColor(200,0,0,50));
274
        item->setBackground(brushRed);
273
        bad_cat++;
275
        bad_cat++;
274
    }
276
    }
275
    if ( hasRefError(parts.value(0)) )
277
    if ( hasRefError(parts.value(0)) )
276
    {
278
    {
277
        item->setBackgroundColor(QColor(0,0,200,50));
279
        item->setBackground(brush);
278
    }
280
    }
279
    parts.removeFirst();
281
    parts.removeFirst();
280
 
282
 
281
    int yy = 0;
283
    int yy = 0;
282
    while ( parts.count() > 0)
284
    while ( parts.count() > 0)
Line 284... Line 286...
284
        // Name of competitor
286
        // Name of competitor
285
        item = new QTableWidgetItem( parts.value(0));
287
        item = new QTableWidgetItem( parts.value(0));
286
        tableWidget->setItem(ii, 3+yy, item);
288
        tableWidget->setItem(ii, 3+yy, item);
287
        if ( hasRefError(parts.value(0)) )
289
        if ( hasRefError(parts.value(0)) )
288
        {
290
        {
289
            item->setBackgroundColor(QColor(0,0,200,50));
291
            item->setBackground(brush);
290
        }
292
        }
291
        parts.removeFirst();
293
        parts.removeFirst();
292
 
294
 
293
 
295
 
294
        // Not loading age at the moment
296
        // Not loading age at the moment
Line 500... Line 502...
500
    for( int j = 1; j <= config.num_legs; j++ )
502
    for( int j = 1; j <= config.num_legs; j++ )
501
    {
503
    {
502
        out << "," << toCsv("Competitor Name");
504
        out << "," << toCsv("Competitor Name");
503
        out << "," << toCsv("Age");
505
        out << "," << toCsv("Age");
504
    }
506
    }
505
    out << endl;
507
    out << Qt::endl;
506
 
508
 
507
    /*
509
    /*
508
     * Put the data into the file
510
     * Put the data into the file
509
     */
511
     */
510
    team_type   team_buf;
512
    team_type   team_buf;
Line 524... Line 526...
524
            for(int j = 1; j <= config.num_legs; j++ )
526
            for(int j = 1; j <= config.num_legs; j++ )
525
            {
527
            {
526
                out << "," << toCsv(team_buf.members[j-1].name);
528
                out << "," << toCsv(team_buf.members[j-1].name);
527
                out << "," << toCsv(team_buf.members[j-1].age);
529
                out << "," << toCsv(team_buf.members[j-1].age);
528
            }
530
            }
529
            out <<endl;
531
            out <<Qt::endl;
530
        }
532
        }
531
    }
533
    }
532
}
534
}
533
 
535
 
534
QStringList QmDialogLoadExternalTeams::splitCsvData( const QString str)
536
QStringList QmDialogLoadExternalTeams::splitCsvData( const QString str)
Line 676... Line 678...
676
            out.setFieldWidth(MAX_TM_NAME+1);
678
            out.setFieldWidth(MAX_TM_NAME+1);
677
            out << team_buf.name;
679
            out << team_buf.name;
678
            out.setFieldWidth(0);
680
            out.setFieldWidth(0);
679
            out << ",";
681
            out << ",";
680
            out << (team_buf.teamclass <= 0 ? "" : config.team_class[team_buf.teamclass - 1].abr);
682
            out << (team_buf.teamclass <= 0 ? "" : config.team_class[team_buf.teamclass - 1].abr);
681
            out <<endl;
683
            out <<Qt::endl;
682
        }
684
        }
683
    }
685
    }
684
}
686
}
685
 
687
 
686
QString QmDialogLoadExternalTeams::toCsv(const QString &str)
688
QString QmDialogLoadExternalTeams::toCsv(const QString &str)