Skip to content
Extraits de code Groupes Projets

Implement the VivyDocument specification

Fusionnées Kubat a demandé de fusionner vivy-doc vers master
2 files
+ 39
13
Comparer les modifications
  • Côte à côte
  • En ligne

Fichiers

+ 37
13
@@ -208,6 +208,15 @@ MainWindow::saveFileAs() noexcept
try {
if (auto document = getCurrentDocument()) {
qDebug() << "Request to save the document" << document->getName();
const QString filename =
dialogSaveFileName("Select the target file to save into", QDir::homePath(),
Utils::getVivyDocumentFileSuffixFilter());
if (filename.isEmpty()) {
qWarning() << "Found an empty filename, don't open a file";
} else {
document->rename(filename);
document->save();
}
}
} catch (const std::runtime_error &e) {
qCritical() << "Failed to save current document:" << e.what();
@@ -378,27 +387,24 @@ MainWindow::documentViewActionsChanged() noexcept
qInfo() << "No view to display:" << e.what();
}
}
QString
MainWindow::dialogOpenFileName(const QString &title, const QString &folder,
const QString &filter) noexcept
static inline QString
executeDialog(MainWindow *const self, QFileDialog *const dialog) noexcept
{
QFileDialog dialog(this, title, folder, filter);
bool dialogAccepted = false;
std::unique_ptr<VivyFileIconProvider> iconProvider(new VivyFileIconProvider());
dialog.setOption(QFileDialog::ReadOnly);
dialog.setIconProvider(iconProvider.get());
dialog.setFileMode(QFileDialog::ExistingFile);
connect(&dialog, &QFileDialog::accepted, this,
[&dialogAccepted]() noexcept -> void { dialogAccepted = true; });
dialog->setIconProvider(iconProvider.get());
dialog->setFileMode(QFileDialog::ExistingFile);
QFileDialog::connect(dialog, &QFileDialog::accepted, self,
[&dialogAccepted]() noexcept -> void { dialogAccepted = true; });
dialog.exec();
dialog->exec();
if (!dialogAccepted) {
if (!dialogAccepted)
return QStringLiteral("");
}
const QStringList resList = dialog.selectedFiles();
const QStringList resList = dialog->selectedFiles();
if (resList.size() != 1) {
qCritical() << "You must select only one file";
return QStringLiteral("");
@@ -406,3 +412,21 @@ MainWindow::dialogOpenFileName(const QString &title, const QString &folder,
return resList.at(0);
}
QString
MainWindow::dialogOpenFileName(const QString &title, const QString &folder,
const QString &filter) noexcept
{
QFileDialog dialog(this, title, folder, filter);
dialog.setOption(QFileDialog::ReadOnly);
return executeDialog(this, &dialog);
}
QString
MainWindow::dialogSaveFileName(const QString &title, const QString &folder,
const QString &filter) noexcept
{
QFileDialog dialog(this, title, folder, filter);
dialog.setAcceptMode(QFileDialog::AcceptSave);
return executeDialog(this, &dialog);
}
Chargement en cours