20 setAttribute(Qt::WA_DeleteOnClose);
30 static int sequenceNumber = 1;
33 curFile = tr(
"graph%1.gv").arg(sequenceNumber++);
34 setWindowTitle(curFile + QLatin1String(
"[*]"));
36 connect(document(), &QTextDocument::contentsChange,
this,
37 &MdiChild::documentWasModified);
42 if (!file.open(QFile::ReadOnly | QFile::Text)) {
45 tr(
"Cannot read file %1:\n%2.").arg(
fileName).arg(file.errorString()));
49 QTextStream
in(&file);
50 QApplication::setOverrideCursor(Qt::WaitCursor);
51 setPlainText(
in.readAll());
52 QApplication::restoreOverrideCursor();
56 connect(document(), &QTextDocument::contentsChange,
this,
57 &MdiChild::documentWasModified);
70 QString
fileName = QFileDialog::getSaveFileName(
this, tr(
"Save As"), curFile);
79 if (!file.open(QFile::WriteOnly | QFile::Text)) {
82 tr(
"Cannot write file %1:\n%2.").arg(
fileName).arg(file.errorString()));
86 QTextStream
out(&file);
87 QApplication::setOverrideCursor(Qt::WaitCursor);
88#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
89 out.setCodec(
"UTF-8");
93 QApplication::restoreOverrideCursor();
109void MdiChild::documentWasModified() {
110 setWindowModified(document()->isModified());
113bool MdiChild::maybeSave() {
114 if (document()->isModified()) {
115 QMessageBox::StandardButton ret;
116 ret = QMessageBox::warning(
this, tr(
"MDI"),
117 tr(
"'%1' has been modified.\n"
118 "Do you want to save your changes?")
120 QMessageBox::Save | QMessageBox::Discard |
121 QMessageBox::Cancel);
122 if (ret == QMessageBox::Save)
124 if (ret == QMessageBox::Cancel)
130void MdiChild::setCurrentFile(
const QString &
fileName) {
131 curFile = QFileInfo(
fileName).canonicalFilePath();
133 document()->setModified(
false);
134 setWindowModified(
false);
138QString MdiChild::strippedName(
const QString &fullFileName) {
139 return QFileInfo(fullFileName).fileName();
static void out(agerrlevel_t level, const char *fmt, va_list args)
Report messages using a user-supplied or default write function.
QString userFriendlyCurrentFile()
std::unique_ptr< ImageViewer > previewFrm
bool saveFile(const QString &fileName)
bool loadPreview(const QString &fileName)
bool loadFile(const QString &fileName)
void closeEvent(QCloseEvent *event)
static int in(Extype_t lhs, Exid_t *rhs, Exdisc_t *disc)
char * fileName(ingraph_state *sp)
Return name of current file being processed.