diff --git a/code/studio/src/plugins/gui_editor/CMakeLists.txt b/code/studio/src/plugins/gui_editor/CMakeLists.txt
index 2b46e2cdc..e1e8b38be 100644
--- a/code/studio/src/plugins/gui_editor/CMakeLists.txt
+++ b/code/studio/src/plugins/gui_editor/CMakeLists.txt
@@ -36,6 +36,7 @@ SET(OVQT_PLUGIN_GUI_EDITOR_HDR
texture_property_manager.h
expression_editor.h
expr_link_dlg.h
+ new_gui_dlg.h
)
SET(OVQT_PLUGIN_GUI_EDITOR_UIS
@@ -55,6 +56,7 @@ SET(OVQT_PLUGIN_GUI_EDITOR_UIS
texture_chooser.ui
expression_editor.ui
expr_link_dlg.ui
+ new_gui_dlg.ui
)
SET(QT_USE_QTGUI TRUE)
diff --git a/code/studio/src/plugins/gui_editor/gui_editor_window.cpp b/code/studio/src/plugins/gui_editor/gui_editor_window.cpp
index 5b3d835a2..1f3c372c0 100644
--- a/code/studio/src/plugins/gui_editor/gui_editor_window.cpp
+++ b/code/studio/src/plugins/gui_editor/gui_editor_window.cpp
@@ -44,6 +44,7 @@
#include "editor_selection_watcher.h"
#include "editor_message_processor.h"
#include "add_widget_widget.h"
+#include "new_gui_dlg.h"
namespace GUIEditor
{
@@ -199,6 +200,13 @@ namespace GUIEditor
void GUIEditorWindow::newDocument()
{
+ NewGUIDlg d;
+ int result = d.exec();
+
+ if( result == QDialog::Rejected )
+ return;
+
+ close();
}
void GUIEditorWindow::save()
@@ -358,14 +366,14 @@ namespace GUIEditor
void GUIEditorWindow::createMenus()
{
Core::MenuManager *mm = Core::ICore::instance()->menuManager();
- //QAction *newAction = mm->action( Core::Constants::NEW );
+ QAction *newAction = mm->action( Core::Constants::NEW );
QAction *saveAction = mm->action( Core::Constants::SAVE );
QAction *saveAsAction = mm->action( Core::Constants::SAVE_AS );
QAction *closeAction = mm->action( Core::Constants::CLOSE );
QAction *delAction = mm->action( Core::Constants::DEL );
- //if( newAction != NULL )
- // newAction->setEnabled( true );
+ if( newAction != NULL )
+ newAction->setEnabled( true );
if( saveAction != NULL )
saveAction->setEnabled( true );
if( saveAsAction != NULL )
diff --git a/code/studio/src/plugins/gui_editor/new_gui_dlg.cpp b/code/studio/src/plugins/gui_editor/new_gui_dlg.cpp
new file mode 100644
index 000000000..8dc7abb1e
--- /dev/null
+++ b/code/studio/src/plugins/gui_editor/new_gui_dlg.cpp
@@ -0,0 +1,72 @@
+// Ryzom Core Studio - GUI Editor Plugin
+//
+// Copyright (C) 2014 Laszlo Kis-Adam
+// Copyright (C) 2010 Ryzom Core
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+#include "new_gui_dlg.h"
+#include
+
+NewGUIDlg::NewGUIDlg( QWidget *parent ) :
+QDialog( parent )
+{
+ m_ui.setupUi( this );
+
+ connect( m_ui.okButton, SIGNAL( clicked( bool ) ), this, SLOT( onOKClicked() ) );
+ connect( m_ui.cancelButton, SIGNAL( clicked( bool ) ), this, SLOT( onCancelClicked() ) );
+
+}
+
+NewGUIDlg::~NewGUIDlg()
+{
+}
+
+QString NewGUIDlg::getProjectName() const
+{
+ return m_ui.projectEdit->text();
+}
+
+QString NewGUIDlg::getWindowName() const
+{
+ return m_ui.windowEdit->text();
+}
+
+void NewGUIDlg::onOKClicked()
+{
+ if( m_ui.projectEdit->text().isEmpty() )
+ {
+ QMessageBox::information( this,
+ tr( "New project" ),
+ tr( "You must specify a project name!" ) );
+ return;
+ }
+
+ if( m_ui.windowEdit->text().isEmpty() )
+ {
+ QMessageBox::information( this,
+ tr( "New project" ),
+ tr( "You must specify a window name!" ) );
+ return;
+ }
+
+ accept();
+}
+
+void NewGUIDlg::onCancelClicked()
+{
+ reject();
+}
+
+
diff --git a/code/studio/src/plugins/gui_editor/new_gui_dlg.h b/code/studio/src/plugins/gui_editor/new_gui_dlg.h
new file mode 100644
index 000000000..3e290545c
--- /dev/null
+++ b/code/studio/src/plugins/gui_editor/new_gui_dlg.h
@@ -0,0 +1,44 @@
+// Ryzom Core Studio - GUI Editor Plugin
+//
+// Copyright (C) 2014 Laszlo Kis-Adam
+// Copyright (C) 2010 Ryzom Core
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+#ifndef NEW_GUI_DLG_H
+#define NEW_GUI_DLG_H
+
+#include "ui_new_gui_dlg.h"
+
+class NewGUIDlg : public QDialog
+{
+ Q_OBJECT
+
+public:
+ NewGUIDlg( QWidget *parent = NULL );
+ ~NewGUIDlg();
+
+ QString getProjectName() const;
+ QString getWindowName() const;
+
+private Q_SLOTS:
+ void onOKClicked();
+ void onCancelClicked();
+
+private:
+ Ui::NewGUIDialog m_ui;
+};
+
+#endif
+
diff --git a/code/studio/src/plugins/gui_editor/new_gui_dlg.ui b/code/studio/src/plugins/gui_editor/new_gui_dlg.ui
new file mode 100644
index 000000000..a144c58e8
--- /dev/null
+++ b/code/studio/src/plugins/gui_editor/new_gui_dlg.ui
@@ -0,0 +1,84 @@
+
+
+ NewGUIDialog
+
+
+
+ 0
+ 0
+ 292
+ 95
+
+
+
+ New GUI
+
+
+ -
+
+
+ Project name
+
+
+
+ -
+
+
+ -
+
+
+ Window name
+
+
+
+ -
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 107
+ 20
+
+
+
+
+ -
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+ OK
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ Cancel
+
+
+
+
+
+
+
+
+
+