-
Notifications
You must be signed in to change notification settings - Fork 2
/
ArticleFactory.cpp
72 lines (58 loc) · 1.52 KB
/
ArticleFactory.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
#include "ArticleFactory.h"
#include "Article.h"
#include "Note.h"
#include "Trash.h"
#include <QFile>
#include <QTextStream>
#include "TagManager.h"
/***
* ArticleFactory
*/
Article* ArticleFactory::buildNote(const QString &path)
{
QFile fichier(path);
if(!fichier.open(QIODevice::ReadOnly | QIODevice::Text))
return 0;
QTextStream flux(&fichier);
QString fpath = flux.readLine();
QString title=flux.readLine();
QString tags = flux.readLine();
QStringList tagList = QStringList();
if(!tags.isEmpty())
tagList = tags.split("|||");
qDebug()<<"Factory: getting taglist: " << tagList;
QString isDeleted = flux.readLine();
QString text;
QString temp("");
while(!temp.isNull()){
temp=flux.readLine();
text+=temp+"\n";
}
fichier.close();
qDebug()<<fpath;
Article *a=new Article(fpath,title,text);
for(QStringList::iterator it = tagList.begin(); it!=tagList.end(); ++it){
Tag* t = this->tm->getTag(*it);
// double binding method
tm->addTagToNote(t, a);
}
// We do this at the end so that all documents are properly loaded.
if(isDeleted == "isDeleted"){
// Trash will take care of all unbinding staff
Trash::getInstance()->recycle(a);
}
a->setModified(false);
return a;
}
Article *ArticleFactory::buildNewNote()
{
return new Article(generateNewFilePath());
}
QString ArticleFactory::getFolder()
{
return "ART/";
}
QString ArticleFactory::getExtension()
{
return ".art";
}