多文档应用中,点击保存时,如果本地文件已存在,则直接写入文件;如果文件不存在,则调用另存为,本地生成文件。
bool MyChild::save()
{
if (isUntitled) {
return saveAs();
} else {
return saveFile(curFile);
}
}
bool MyChild::saveAs()
{
QString fileName = QFileDialog::getSaveFileName(this, QStringLiteral("另存为"),curFile, QStringLiteral("HTML 文档 (*.htm *.html);;所有文件 (*.*)"));
if (fileName.isEmpty())
return false;
return saveFile(fileName);
}
bool MyChild::saveFile(QString fileName)
{
if (!(fileName.endsWith(".htm", Qt::CaseInsensitive) || fileName.endsWith(".html", Qt::CaseInsensitive))) {
fileName += ".html"; // 默认保存为 HTML 文档
}
QTextDocumentWriter writer(fileName);
bool success = writer.write(this->document());
if (success)
setCurrentFile(fileName);
return success;
}