Skip to content
Snippets Groups Projects
Unverified Commit 930bd747 authored by Wuttke, Joachim's avatar Wuttke, Joachim Committed by GitHub
Browse files

Merge branch 'develop' into dec02

parents 0b3a3f03 43c9f03c
No related branches found
No related tags found
No related merge requests found
......@@ -20,7 +20,7 @@
#include <QPushButton>
#include <QVBoxLayout>
NewProjectDialog::NewProjectDialog(QWidget* parent, const QString& workingDirectory,
NewProjectDialog::NewProjectDialog(QWidget* parent, Mode mode, const QString& workingDirectory,
const QString& projectName)
: QDialog(parent)
, m_projectNameEdit(0)
......@@ -34,7 +34,7 @@ NewProjectDialog::NewProjectDialog(QWidget* parent, const QString& workingDirect
{
setMinimumSize(480, 280);
setWindowTitle("New project");
setWindowTitle(mode == CREATE ? "New project" : "Save project");
QLabel* nameLabel = new QLabel("Project name:");
m_projectNameEdit = new QLineEdit;
......@@ -43,7 +43,7 @@ NewProjectDialog::NewProjectDialog(QWidget* parent, const QString& workingDirect
SLOT(checkIfProjectNameIsValid(QString)));
nameLabel->setBuddy(m_projectNameEdit);
QLabel* parentDirLabel = new QLabel("Create in:");
QLabel* parentDirLabel = new QLabel(mode == CREATE ? "Create in:" : "Save in:");
m_workDirEdit = new QLineEdit;
m_workDirEdit->setText(QDir::homePath());
connect(m_workDirEdit, SIGNAL(textEdited(QString)), this,
......@@ -55,7 +55,7 @@ NewProjectDialog::NewProjectDialog(QWidget* parent, const QString& workingDirect
m_warningLabel = new QLabel();
m_createButton = new QPushButton("Create");
m_createButton = new QPushButton(mode == CREATE ? "Create" : "Save");
connect(m_createButton, SIGNAL(clicked()), this, SLOT(createProjectDir()));
m_createButton->setDefault(true);
m_cancelButton = new QPushButton("Cancel");
......
......@@ -24,7 +24,9 @@ class QLabel;
class NewProjectDialog : public QDialog {
Q_OBJECT
public:
NewProjectDialog(QWidget* parent = 0, const QString& workingDirectory = "",
enum Mode { CREATE, SAVE };
NewProjectDialog(QWidget* parent, Mode mode, const QString& workingDirectory = "",
const QString& projectName = "");
QString getWorkingDirectory() const;
......
......@@ -175,12 +175,11 @@ void ProjectManager::newProject() {
if (!closeCurrentProject())
return;
QString projectFileName = acquireProjectFileName();
createNewProject();
if (!projectFileName.isEmpty()) {
createNewProject();
QString projectFileName = acquireProjectFileName(false);
if (!projectFileName.isEmpty())
saveProject(projectFileName);
}
}
//! Processes close current project request. Call save/discard/cancel dialog, if necessary.
......@@ -228,7 +227,7 @@ bool ProjectManager::saveProject(QString projectFileName) {
if (m_project_document->hasValidNameAndPath())
projectFileName = m_project_document->projectFileName();
else
projectFileName = acquireProjectFileName();
projectFileName = acquireProjectFileName(true);
}
if (projectFileName.isEmpty())
......@@ -255,7 +254,7 @@ bool ProjectManager::saveProject(QString projectFileName) {
//! Processes 'save project as' request.
bool ProjectManager::saveProjectAs() {
QString projectFileName = acquireProjectFileName();
QString projectFileName = acquireProjectFileName(true);
if (projectFileName.isEmpty())
return false;
......@@ -269,6 +268,8 @@ void ProjectManager::openProject(QString fileName) {
if (!closeCurrentProject())
return;
createNewProject();
if (fileName.isEmpty()) {
fileName =
QFileDialog::getOpenFileName(m_mainWindow, "Open project file", workingDirectory(),
......@@ -276,7 +277,7 @@ void ProjectManager::openProject(QString fileName) {
if (fileName.isEmpty())
return;
}
createNewProject();
loadProject(fileName);
if (m_project_document->isReady()) {
......@@ -334,10 +335,12 @@ void ProjectManager::loadProject(const QString& projectFileName) {
QApplication::restoreOverrideCursor();
}
//! Returns project file name from dialog.
//! Returns project file name from dialog. Returns empty string if dialog was canceled.
QString ProjectManager::acquireProjectFileName() {
NewProjectDialog dialog(m_mainWindow, workingDirectory(), untitledProjectName());
QString ProjectManager::acquireProjectFileName(bool forSaveAs) {
NewProjectDialog dialog(m_mainWindow,
forSaveAs ? NewProjectDialog::SAVE : NewProjectDialog::CREATE,
workingDirectory(), untitledProjectName());
if (dialog.exec() != QDialog::Accepted)
return "";
......
......@@ -61,7 +61,7 @@ private:
void createNewProject();
void deleteCurrentProject();
void loadProject(const QString& projectFileName);
QString acquireProjectFileName();
QString acquireProjectFileName(bool forSaveAs);
void addToRecentProjects();
QString workingDirectory();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment