-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathSavedQueryWidget.cpp
More file actions
81 lines (67 loc) · 1.85 KB
/
SavedQueryWidget.cpp
File metadata and controls
81 lines (67 loc) · 1.85 KB
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
#include "SavedQueryWidget.h"
#include "ui_SavedQueryWidget.h"
#include <QDebug>
#include <QSettings>
SavedQueryWidget::SavedQueryWidget(QWidget *parent) :
QWidget(parent),
ui(new Ui::SavedQueryWidget)
{
ui->setupUi(this);
}
SavedQueryWidget::~SavedQueryWidget()
{
delete ui;
}
void SavedQueryWidget::setDatabase(QSqlDatabase *database)
{
m_database = database;
loadQueries();
}
void SavedQueryWidget::addQuery(QString query)
{
QListWidgetItem *item = new QListWidgetItem();
item->setData(Qt::DisplayRole, query);
//item->setData(Qt::DisplayRole, "Title");
//item->setData(Qt::UserRole, query);
ui->listWidget->addItem(item);
//http://stackoverflow.com/questions/6905147/qt-qlistwidgetitem-multiple-lines
saveQueries();
}
void SavedQueryWidget::on_addButton_clicked()
{
emit addButtonClicked();
}
void SavedQueryWidget::on_removeButton_clicked()
{
QListWidgetItem *item = ui->listWidget->currentItem();
ui->listWidget->takeItem(ui->listWidget->currentRow());
delete item;
saveQueries();
}
void SavedQueryWidget::loadQueries()
{
// Load saved connections
QSettings settings;
int size = settings.beginReadArray(m_database->connectionName());
for (int i = 0; i < size; i++) {
settings.setArrayIndex(i);
// Add item to combo box
ui->listWidget->addItem(settings.value("query").toString());
}
settings.endArray();
}
void SavedQueryWidget::saveQueries()
{
// Save queries
QSettings settings;
settings.beginWriteArray(m_database->connectionName());
for (int i = 0; i < ui->listWidget->count(); i++) {
settings.setArrayIndex(i);
settings.setValue("query", ui->listWidget->item(i)->text());
}
settings.endArray();
}
void SavedQueryWidget::on_listWidget_itemActivated(QListWidgetItem *item)
{
emit querySelected(item->text());
}