summaryrefslogtreecommitdiffstats
path: root/mainwindow.cpp
blob: b0e906b182cc4eb6c162823476c110e1ac13fb53 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    deleteBanken();
    delete ui;
}

void MainWindow::deleteBanken()
{
    for (int i = 0, total = m_Banken.length(); i < total; ++i)
    {
        delete m_Banken[i];
        m_Banken.removeAt(i);
        qDebug() << ".";
    }
}

void MainWindow::on_actionLoad_triggered()
{
    QString fileName = QFileDialog::getOpenFileName(this,
                       tr("Lade die Bankendatei"), "",
                       tr("TXT File (*.txt *.Txt *.TXT)"));

    QFile openFile(fileName);

    if (openFile.open(QIODevice::ReadOnly))
    {
        QTextStream txtStream(&openFile);
        txtStream.setCodec("ISO-8859-15");

        deleteBanken();

        ui->tableWidget->clearContents();
        ui->tableWidget->setRowCount(0);

        QString line = txtStream.readLine();

        while (!line.isNull())
        {
            m_Banken.append(new Bank());

            m_Banken.last()->attributesFromTxtFile(line);

            ui->tableWidget->setRowCount(ui->tableWidget->rowCount() + 1);

            QTableWidgetItem *name = new QTableWidgetItem(m_Banken.last()->Name());
            QTableWidgetItem *ort = new QTableWidgetItem(m_Banken.last()->Ort());
            QTableWidgetItem *plz = new QTableWidgetItem(m_Banken.last()->Plz());
            QTableWidgetItem *blz = new QTableWidgetItem(m_Banken.last()->Blz());
            QTableWidgetItem *bic = new QTableWidgetItem(m_Banken.last()->Bic());
            QTableWidgetItem *lkz = new QTableWidgetItem(m_Banken.last()->Lkz());

            name->setFlags(Qt::ItemIsSelectable|Qt::ItemIsEnabled);
            ort->setFlags(Qt::ItemIsSelectable|Qt::ItemIsEnabled);
            plz->setFlags(Qt::ItemIsSelectable|Qt::ItemIsEnabled);
            blz->setFlags(Qt::ItemIsSelectable|Qt::ItemIsEnabled);
            bic->setFlags(Qt::ItemIsSelectable|Qt::ItemIsEnabled);
            lkz->setFlags(Qt::ItemIsSelectable|Qt::ItemIsEnabled);

            if (lkz->text() == "D")
            {
                QBrush red(Qt::red);

                lkz->setText(tr("Wird gelöscht"));

                name->setForeground(red);
                ort->setForeground(red);
                plz->setForeground(red);
                blz->setForeground(red);
                bic->setForeground(red);
                lkz->setForeground(red);
            }

            ui->tableWidget->setItem(ui->tableWidget->rowCount() - 1, 0, name);
            ui->tableWidget->setItem(ui->tableWidget->rowCount() - 1, 1, ort);
            ui->tableWidget->setItem(ui->tableWidget->rowCount() - 1, 2, plz);
            ui->tableWidget->setItem(ui->tableWidget->rowCount() - 1, 3, blz);
            ui->tableWidget->setItem(ui->tableWidget->rowCount() - 1, 4, bic);
            ui->tableWidget->setItem(ui->tableWidget->rowCount() - 1, 5, lkz);

            line = txtStream.readLine();
        }

        ui->tableWidget->resizeColumnsToContents();
        ui->tableWidget->setSortingEnabled(true);

        openFile.close();
    }
}