-
Notifications
You must be signed in to change notification settings - Fork 0
/
OutputDialog.cpp
59 lines (45 loc) · 1.81 KB
/
OutputDialog.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
#include "OutputDialog.hpp"
OutputDialog::OutputDialog(const QString& name, const QString& header, const QString& source) : m_className{ name }
{
setWindowFlag(Qt::Tool);
setWindowTitle("Source code");
m_mainLayout = new QVBoxLayout;
setLayout(m_mainLayout);
m_tabWidgetContent = new QTabWidget;
m_pushButtonSave = new QPushButton{ "Save" };
m_pushButtonClose = new QPushButton{ "Close" };
m_mainLayout->addWidget(m_tabWidgetContent);
m_mainLayout->addWidget(m_pushButtonSave);
m_mainLayout->addWidget(m_pushButtonClose);
m_textEditHeader = new QTextEdit{ header };
m_textEditSource = new QTextEdit{ source };
m_textEditHeader->setReadOnly(true);
m_textEditSource->setReadOnly(true);
m_textEditHeader->setFont(QFont{ "Consolas" });
m_textEditSource->setFont(QFont{ "Consolas" });
QFontMetrics metrics{ m_textEditHeader->font() };
m_textEditHeader->setTabStopWidth(metrics.width(' ') * 4);
m_tabWidgetContent->addTab(m_textEditHeader, ".hpp");
m_tabWidgetContent->addTab(m_textEditSource, ".cpp");
QObject::connect(m_pushButtonClose, &QPushButton::clicked, this, &OutputDialog::close);
QObject::connect(m_pushButtonSave, &QPushButton::clicked, this, &OutputDialog::saveFiles);
}
void OutputDialog::saveFiles()
{
QString path = QFileDialog::getExistingDirectory(this);
QFile header{ path + "/" + m_className + ".h" };
QFile source{ path + "/" + m_className + ".cpp" };
if (!header.open(QIODevice::WriteOnly | QIODevice::Text) || !source.open(QIODevice::WriteOnly | QIODevice::Text))
{
QMessageBox::critical(this, "Save", "Impossible to save files.");
return;
}
else
{
QTextStream outHeader{ &header };
outHeader << m_textEditHeader->toPlainText();
QTextStream outSource{ &source };
outSource << m_textEditSource->toPlainText();
QMessageBox::information(this, "Save", "Saving successfully !");
}
}