-
Notifications
You must be signed in to change notification settings - Fork 1
/
notepad.cpp
82 lines (69 loc) · 1.86 KB
/
notepad.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
#include <QDir>
#include <QFile>
#include <QTextStream>
#include <QDebug>
#include "masterwindow.h"
Notepad::Notepad(QWidget *parent) :
QWidget(parent)
{
textEdit = new QPlainTextEdit(this);
textEdit->setFont(QFont("Arial", 12));
topLayout = new QHBoxLayout;
topLayout->addWidget(textEdit, 0, Qt::AlignHCenter);
saveButton = new QPushButton;
saveButton->setText("Save");
bottomLayout = new QHBoxLayout;
bottomLayout->addWidget(saveButton, 0, Qt::AlignHCenter);
mainLayout = new QVBoxLayout;
mainLayout->addLayout(topLayout);
mainLayout->addLayout(bottomLayout);
setLayout(mainLayout);
update();
connect(saveButton, SIGNAL(clicked()),
this, SLOT(saveClicked()));
}
Notepad::~Notepad()
{
}
void Notepad::update()
{
currentPath = "Local Memory/data/";
textEdit->clear();
}
void Notepad::saveClicked()
{
QString fileName = getFilename();
QFile file(fileName);
file.open(QFile::WriteOnly | QFile::Text);
QTextStream stream(&file);
stream << textEdit->toPlainText();
file.close();
masterWindow->storage->update();
masterWindow->storage->system->showDataDir();
masterWindow->stackLayout->setCurrentIndex(4);
}
QString Notepad::getFilename()
{
QDir currentDir(".");
if (!currentDir.exists(currentPath))
{
currentDir.mkpath(currentPath);
}
currentDir.cd(currentPath);
if (currentDir.entryList(QDir::AllEntries | QDir::NoDotAndDotDot).isEmpty())
{
return "0.txt";
}
else
{
for (int i = 0; i < INT_MAX; i++)
{
QString fileName = currentPath + QString("%1.txt").arg(i);
QFile file(fileName);
if (!file.exists())
{
return fileName;
}
}
}
}