20 #include <QFileDialog>
21 #include <QMessageBox>
28 std::map<QMessageBox::StandardButton, SaveChangesAnswer> answer_map()
30 std::map<QMessageBox::StandardButton, SaveChangesAnswer> result = {
41 : m_settings(settings), m_parent(parent)
58 "Selected directory doesn't look like a project directory, choose another one");
78 msgBox.setText(
"The selected directory is not empty, choose another one.");
90 static auto translate = answer_map();
93 msgBox.setText(
"The project has been modified.");
94 msgBox.setInformativeText(
"Do you want to save your changes?");
95 msgBox.setStandardButtons(QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel);
96 msgBox.setDefaultButton(QMessageBox::Save);
97 auto ret =
static_cast<QMessageBox::StandardButton
>(msgBox.exec());
98 return translate[ret];
106 QString dirname = QFileDialog::getExistingDirectory(
108 QFileDialog::DontResolveSymlinks | QFileDialog::ShowDirsOnly);
110 if (!dirname.isEmpty())
113 return dirname.toStdString();
Collection of settings for RecentProjectWidget.
void updateWorkdirFromSelection(const QString &dirname)
Updates current workdir value from user selection.
QString currentWorkdir() const
Returns current workdir.
RecentProjectSettings * m_settings
std::string selectDir() const
Summon dialog to select directory on disk.
ModelView::SaveChangesAnswer onSaveChangesRequest()
Returns save/cancel/discard changes choice provided by the user.
std::string onCreateDirRequest()
Returns new directory on disk created by the user via QFileDialog.
std::string onSelectDirRequest()
Returns directory on disk selected by the user via QFileDialog.
MVVM_MODEL_EXPORT bool IsPossibleProjectDir(const std::string &project_dir)
Returns 'true' if given directory might be a project directory.
MVVM_MODEL_EXPORT bool is_empty(const std::string &path)
Returns true if the file indicated by 'path' refers to empty file or directory.
materialitems.h Collection of materials to populate MaterialModel.
SaveChangesAnswer
Possible user answers on question "Project was modified".
Based on Qt example "codeeditor" Copyright (C) 2016 The Qt Company Ltd.