-
Notifications
You must be signed in to change notification settings - Fork 0
/
db_indexdialog.cpp
97 lines (82 loc) · 2.63 KB
/
db_indexdialog.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
#include "db_indexdialog.h"
#include "ui_databaseoutput.h"
DbIndexDialog::DbIndexDialog(QWidget *parent) : QDialog(parent), ui(new Ui::Form)
{
ui->setupUi(this);
}
DbIndexDialog::~DbIndexDialog()
{
delete ui;
delete entryDialog;
}
void DbIndexDialog::createList(DBHandler &db)
{
this->db = &db;
QSharedPointer<QList<QString>> list = db.readDbIndex();
for(int i = 0; i < list->size(); ++i){
ui->listWidget->addItem(list->value(i));
}
ui->listWidget->setSpacing(5);
list->clear();
}
void DbIndexDialog::on_closeButton_clicked()
{
close();
}
/**
* creates new dialog with all data for the selected entry
* @brief DbIndexDialog::on_showButton_clicked
*/
void DbIndexDialog::on_showButton_clicked()
{
//if user selected an entry
if(checkIfSelected() == true){
entryDialog = new DbEntryDialog(this);
entryDialog->setModal(true);
QString caption = ui->listWidget->selectedItems().constFirst()->text();
entryDialog->setCaption(caption);
entryDialog->setTableData(db->readDbData(caption));
entryDialog->show();
}
}
//TODO Implement slots for buttons
//TODO delete item from list
//Deleting selected entry from a database
void DbIndexDialog::on_deleteButton_clicked()
{
//if user selected an entry
if(checkIfSelected() == true){
QMessageBox msgBox;
QString* msg = new QString("Delete entry ");
msg->append(ui->listWidget->selectedItems().value(0)->text());
msgBox.setText(*msg);
msgBox.setStandardButtons(QMessageBox::Ok | QMessageBox::Cancel);
msgBox.setDefaultButton(QMessageBox::Ok);
//Deleting selected entry & updating list of current available entries
if(msgBox.exec() == QMessageBox::Ok)
{
QString* entry = new QString(ui->listWidget->selectedItems().value(0)->text());
db->deleteEntry(*entry);
for(int i = 0; i < ui->listWidget->count(); ++i){
if (ui->listWidget->item(i)->text() == entry){
qDeleteAll(ui->listWidget->selectedItems());
qDebug()<< "removing entry from listWidget";
}
}
}
}
}
/** Checking if anything is selected, otherwise showing an alert dialog
* @brief DbIndexDialog::checkIfSelected
* @return true if selected, false if not selected
*/
bool DbIndexDialog::checkIfSelected()
{
if(ui->listWidget->selectedItems().isEmpty()){
QMessageBox msgBox;
msgBox.setText("Please, select an entry from the list");
msgBox.exec();
return false;
}
return true;
}