summaryrefslogtreecommitdiffstats
path: root/utils
diff options
context:
space:
mode:
Diffstat (limited to 'utils')
-rw-r--r--utils/themeeditor/gui/editorwindow.cpp31
-rw-r--r--utils/themeeditor/gui/editorwindow.h1
-rw-r--r--utils/themeeditor/gui/editorwindow.ui12
3 files changed, 43 insertions, 1 deletions
diff --git a/utils/themeeditor/gui/editorwindow.cpp b/utils/themeeditor/gui/editorwindow.cpp
index b81e41a2f5..247109cc19 100644
--- a/utils/themeeditor/gui/editorwindow.cpp
+++ b/utils/themeeditor/gui/editorwindow.cpp
@@ -205,6 +205,8 @@ void EditorWindow::setupMenus()
QObject::connect(ui->actionClose_Document, SIGNAL(triggered()),
this, SLOT(closeCurrent()));
+ QObject::connect(ui->actionClose_Project, SIGNAL(triggered()),
+ this, SLOT(closeProject()));
QObject::connect(ui->actionSave_Document, SIGNAL(triggered()),
this, SLOT(saveCurrent()));
@@ -347,6 +349,31 @@ void EditorWindow::closeCurrent()
closeTab(ui->editorTabs->currentIndex());
}
+void EditorWindow::closeProject()
+{
+ if(project)
+ {
+ project->deleteLater();
+ project = 0;
+ }
+
+ for(int i = 0; i < ui->editorTabs->count(); i++)
+ {
+ TabContent* doc = dynamic_cast<TabContent*>
+ (ui->editorTabs->widget(i));
+ if(doc->type() == TabContent::Skin)
+ {
+ dynamic_cast<SkinDocument*>(doc)->setProject(project);
+ if(i == ui->editorTabs->currentIndex())
+ {
+ viewer->setScene(dynamic_cast<SkinDocument*>(doc)->scene());
+ }
+ }
+ }
+
+ ui->actionClose_Project->setEnabled(false);
+}
+
void EditorWindow::saveCurrent()
{
if(ui->editorTabs->currentIndex() >= 0)
@@ -401,7 +428,9 @@ void EditorWindow::openProject()
{
if(project)
- delete project;
+ project->deleteLater();
+
+ ui->actionClose_Project->setEnabled(true);
project = new ProjectModel(fileName, this);
ui->projectTree->setModel(project);
diff --git a/utils/themeeditor/gui/editorwindow.h b/utils/themeeditor/gui/editorwindow.h
index 6b09b79815..0178f602b2 100644
--- a/utils/themeeditor/gui/editorwindow.h
+++ b/utils/themeeditor/gui/editorwindow.h
@@ -67,6 +67,7 @@ private slots:
void shiftTab(int index);
bool closeTab(int index);
void closeCurrent();
+ void closeProject();
void saveCurrent();
void saveCurrentAs();
void openFile();
diff --git a/utils/themeeditor/gui/editorwindow.ui b/utils/themeeditor/gui/editorwindow.ui
index 5ef3261acb..ab8dc61896 100644
--- a/utils/themeeditor/gui/editorwindow.ui
+++ b/utils/themeeditor/gui/editorwindow.ui
@@ -52,6 +52,7 @@
<addaction name="actionOpen_Project"/>
<addaction name="separator"/>
<addaction name="actionClose_Document"/>
+ <addaction name="actionClose_Project"/>
<addaction name="separator"/>
<addaction name="actionSave_Document"/>
<addaction name="actionSave_Document_As"/>
@@ -374,6 +375,17 @@
<string>Ctrl+T</string>
</property>
</action>
+ <action name="actionClose_Project">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>Close Pro&amp;ject</string>
+ </property>
+ <property name="shortcut">
+ <string>Ctrl+Shift+W</string>
+ </property>
+ </action>
</widget>
<tabstops>
<tabstop>projectTree</tabstop>