forked from IPP-Projekt/Uczelnia_z_bibloteka_klas
-
Notifications
You must be signed in to change notification settings - Fork 0
/
mainwindow.cpp
141 lines (124 loc) · 3.8 KB
/
mainwindow.cpp
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "dodaj_dialog.h"
#include "usun_dialog.h"
#include "edytuj_dialog.h"
#include "szukaj_dialog.h"
#include "dodaj_grupe_dialog.h"
#include "QMessageBox"
#include "oceny_studenta.h"
#include "dodaj_ocene_dialog.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, oceny(SystemOceniania(&uczelnia))
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
ui->tableViewDatabase->setModel(uczelnia.getModel(0));
ui->tableViewDatabase->show();
ui->comboBoxTable->addItems({"Studenci","Grupy","Oceny"});
oceny.AktualizujOceny();
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_btn_Dodaj_clicked()
{
if( (ui->comboBoxTable->currentText()) == "Studenci")
{
Dodaj_dialog dialog(&uczelnia);
dialog.setModal(true);
dialog.exec();
uczelnia.refreshTables();
}
else if ((ui->comboBoxTable->currentText()) == "Grupy")
{
Dodaj_grupe_Dialog dialog(&uczelnia);
dialog.setModal(true);
dialog.exec();
}
else if ((ui->comboBoxTable->currentIndex() == 2))
{
Dodaj_ocene_dialog dialog(&uczelnia);
dialog.setModal(true);
dialog.exec();
}
else
QMessageBox::information(this,tr("Uwaga"),tr("Nie wybrano żadnej opcji"));
}
void MainWindow::on_btn_Usun_clicked()
{
Usun_dialog dialog(&uczelnia, selectedEntry, ui->comboBoxTable->currentIndex());
dialog.setModal(true);
dialog.exec();
uczelnia.refreshTables();
}
void MainWindow::on_btn_Edytuj_clicked()
{
Edytuj_dialog dialog;
dialog.setModal(true);
dialog.exec();
}
void MainWindow::on_btn_Szukaj_clicked()
{
QString szukana;
Szukaj_dialog dialog(&szukana);
dialog.setModal(true);
dialog.exec();
int znaleziona;
QSqlTableModel* model = uczelnia.getModel(ui->comboBoxTable->currentIndex());
for(int i= 0; i < model->columnCount(); i++){
for(int j = 0; j < model->rowCount(); j++){
if(ui->tableViewDatabase->model()->index(j,i).data().toString() == szukana){
znaleziona = j;
}
}
}
ui->tableViewDatabase->selectRow(znaleziona);
}
void MainWindow::on_tableViewDatabase_clicked(const QModelIndex &index)
{
selectedEntry = ui->tableViewDatabase->model()->index(index.row(),0).data().toInt();
}
void MainWindow::on_comboBoxTable_currentIndexChanged(int index)
{
ui->tableViewDatabase->setModel(uczelnia.getModel(index));
ui->tableViewDatabase->show();
if(index == 0)
ui->pushButtonOceny->setDisabled(0);
else
ui->pushButtonOceny->setDisabled(1);
ui->comboBoxSort->clear();
for(int i = 0; i < uczelnia.getModel(index)->columnCount(); i++){
ui->comboBoxSort->addItem("Rosnąco - " + uczelnia.getModel(index)->record().fieldName(i));
}
for(int i = 0; i < uczelnia.getModel(index)->columnCount(); i++){
ui->comboBoxSort->addItem("Malejąco - " + uczelnia.getModel(index)->record().fieldName(i));
}
}
void MainWindow::on_tableViewDatabase_entered(const QModelIndex &index)
{
uczelnia.refreshTables();
}
void MainWindow::on_pushButtonOceny_clicked()
{
Oceny_studenta dialog(&uczelnia, selectedEntry);
dialog.setModal(true);
dialog.exec();
}
void MainWindow::on_pushButtonOceny_2_clicked()
{
oceny.AktualizujOceny();
}
void MainWindow::on_comboBoxSort_currentIndexChanged(int index)
{
if(index < uczelnia.getModel(ui->comboBoxTable->currentIndex())->columnCount()){
uczelnia.getModel(ui->comboBoxTable->currentIndex())->setSort(index,Qt::AscendingOrder);
}
else{
index -= uczelnia.getModel(ui->comboBoxTable->currentIndex())->columnCount();
uczelnia.getModel(ui->comboBoxTable->currentIndex())->setSort(index,Qt::DescendingOrder);
}
uczelnia.refreshTables();
}