-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathsnippetmodel.cpp
74 lines (63 loc) · 2.19 KB
/
snippetmodel.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
#include "snippetmodel.h"
#include <QtSql>
SnippetModel::SnippetModel()
{
}
bool SnippetModel::initConnection()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("data/db");
bool ok = db.open();
QSqlQuery query;
//query.exec("DROP TABLE 'snippets';");
//query.exec("CREATE TABLE IF NOT EXISTS 'snippets' ( 'id' INT PRIMARY KEY, 'title' VARCHAR(255), 'tags' VARCHAR(255), 'code' TEXT NOT NULL, 'language' VARCHAR(30) );");
//query.exec("INSERT INTO 'snippets' VALUES (NULL, 'Hello', 'bip,bip', 'helloWorld();', 'PHP');");
//query.exec("INSERT INTO 'snippets' VALUES (NULL, 'ZenGarden', 'bip,bip', 'folks();', 'Java');");
//query.exec("INSERT INTO 'snippets' VALUES (NULL, 'ZenGarden2', 'bip,bip2', 'folks2();', 'Java');");
return ok;
}
QStringList* SnippetModel::getAllLanguages()
{
QSqlQuery query;
QStringList *languages = new QStringList();
query.exec("select distinct language from snippets;");
while(query.next())
languages->append(query.value(0).toString());
return languages;
}
QMap<QString,QString> SnippetModel::getEntries()
{
QMap<QString,QString> entries;
QSqlQuery query;
query.exec("select language,title from snippets;");
while(query.next())
entries.insertMulti(query.value(0).toString(), query.value(1).toString());
return entries;
}
bool SnippetModel::addEntry(QString title, QString tags, QString language, QString code)
{
QSqlQuery query;
query.prepare("INSERT INTO SNIPPETS(id, title, tags, language, code) values(NULL, ?, ? ,?,?)");
query.addBindValue(title);
query.addBindValue(tags);
query.addBindValue(language);
query.addBindValue(code);
if(query.exec()) return true;
return false;
}
QStringList SnippetModel::getEntryByTitle(QString title)
{
QSqlQuery query;
QStringList entry;
query.prepare("SELECT title,tags,language,code FROM snippets WHERE title=?");
query.addBindValue(title);
if(query.exec())
{
query.next();
entry << query.value(0).toString()
<< query.value(1).toString()
<< query.value(2).toString()
<< query.value(3).toString();
}
return entry;
}