-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathscripteditor.cpp
More file actions
88 lines (72 loc) · 1.79 KB
/
scripteditor.cpp
File metadata and controls
88 lines (72 loc) · 1.79 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
82
83
84
85
86
87
88
#include <stdexcept>
#include <QtWidgets>
#include <QDir>
#include <QFileDialog>
#include "scripteditor.h"
namespace vfg {
namespace ui {
QString defaultPath() {
static const auto path = QDir::current().absoluteFilePath("temp_script.avs");
return path;
}
ScriptEditor::ScriptEditor(QWidget *parent) :
QWidget(parent)
{
ui.setupUi(this);
setSavePath(defaultPath());
}
ScriptEditor::~ScriptEditor()
{
if(QFile::exists(defaultPath())) {
QFile::remove(defaultPath());
}
}
void ScriptEditor::save()
{
// Write updated script
QFile outFile(savePath);
if(!outFile.open(QFile::WriteOnly | QFile::Truncate)) {
QMessageBox::critical(this, tr("Avisynth Script Editor"),
tr("Failed to open Avisynth script for writing. "
"Make sure folder isn't read-only."));
return;
}
QTextStream out(&outFile);
out << ui.plainTextEdit->toPlainText();
}
void ScriptEditor::setContent(const QString &content)
{
ui.plainTextEdit->setPlainText(content);
}
QString ScriptEditor::path() const
{
return savePath;
}
void ScriptEditor::setSavePath(const QString &path)
{
savePath = path;
setWindowTitle(path);
}
void ScriptEditor::on_updateButton_clicked()
{
save();
emit scriptUpdated();
}
void ScriptEditor::on_btnSaveAs_clicked()
{
const QString outPath = QFileDialog::getSaveFileName(0,
tr("Select Avisynth script output path"),
defaultPath());
if(outPath.isEmpty()) {
return;
}
setSavePath(outPath);
save();
}
void ScriptEditor::reset()
{
ui.plainTextEdit->clear();
setSavePath(defaultPath());
}
} // namespace ui
} // namespace vfg