summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--utils/themeeditor/editorwindow.cpp27
-rw-r--r--utils/themeeditor/editorwindow.h3
-rw-r--r--utils/themeeditor/editorwindow.ui241
-rw-r--r--utils/themeeditor/parsetreemodel.cpp5
4 files changed, 256 insertions, 20 deletions
diff --git a/utils/themeeditor/editorwindow.cpp b/utils/themeeditor/editorwindow.cpp
index e06f0d8937..36242bf8cb 100644
--- a/utils/themeeditor/editorwindow.cpp
+++ b/utils/themeeditor/editorwindow.cpp
@@ -22,7 +22,8 @@
#include "editorwindow.h"
#include "ui_editorwindow.h"
-#include <iostream>
+#include <QDesktopWidget>
+#include <QFileSystemModel>
EditorWindow::EditorWindow(QWidget *parent) :
QMainWindow(parent),
@@ -37,10 +38,25 @@ EditorWindow::EditorWindow(QWidget *parent) :
void EditorWindow::loadSettings()
{
/* When there are settings to load, they'll be loaded here */
+ /* For now, we'll just set the window to take up most of the screen */
+ QDesktopWidget* desktop = QApplication::desktop();
+
+ QRect availableSpace = desktop->availableGeometry(desktop->primaryScreen());
+ QRect buffer(availableSpace.left() + availableSpace.width() / 10,
+ availableSpace.top() + availableSpace.height() / 10,
+ availableSpace.width() * 8 / 10,
+ availableSpace.height() * 8 / 10);
+ this->setGeometry(buffer);
+
}
void EditorWindow::setupUI()
{
+ /* Displaying some files to test the file tree view */
+ QFileSystemModel* model = new QFileSystemModel;
+ model->setRootPath(QDir::currentPath());
+ ui->fileTree->setModel(model);
+
/* Establishing the parse tree */
tree = new ParseTreeModel(ui->codeEdit->document()->toPlainText().
toAscii());
@@ -70,10 +86,15 @@ void EditorWindow::codeChanged()
ui->parseTree->expandAll();
}
+void EditorWindow::closeEvent(QCloseEvent* event)
+{
+ event->accept();
+}
+
void EditorWindow::updateCode()
{
- tree->genCode();
- ui->codeEdit->document()->setPlainText(tree->genCode());
+ if(tree)
+ ui->codeEdit->document()->setPlainText(tree->genCode());
}
EditorWindow::~EditorWindow()
diff --git a/utils/themeeditor/editorwindow.h b/utils/themeeditor/editorwindow.h
index f37cfcbf29..27d08521ab 100644
--- a/utils/themeeditor/editorwindow.h
+++ b/utils/themeeditor/editorwindow.h
@@ -37,6 +37,9 @@ public:
EditorWindow(QWidget *parent = 0);
~EditorWindow();
+protected:
+ virtual void closeEvent(QCloseEvent* event);
+
private slots:
void updateCode();
void codeChanged();
diff --git a/utils/themeeditor/editorwindow.ui b/utils/themeeditor/editorwindow.ui
index a85ef62155..24bd1b4325 100644
--- a/utils/themeeditor/editorwindow.ui
+++ b/utils/themeeditor/editorwindow.ui
@@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
- <width>800</width>
- <height>400</height>
+ <width>628</width>
+ <height>433</height>
</rect>
</property>
<property name="windowTitle">
@@ -33,7 +33,7 @@
<rect>
<x>0</x>
<y>0</y>
- <width>800</width>
+ <width>628</width>
<height>25</height>
</rect>
</property>
@@ -41,30 +41,102 @@
<property name="title">
<string>File</string>
</property>
+ <addaction name="actionPreferences"/>
+ <addaction name="separator"/>
<addaction name="actionQuit"/>
</widget>
+ <widget class="QMenu" name="menuView">
+ <property name="title">
+ <string>View</string>
+ </property>
+ <addaction name="actionPreview_Panel"/>
+ <addaction name="actionDisplay_Panel"/>
+ <addaction name="actionFile_Panel"/>
+ </widget>
<addaction name="menuFile"/>
+ <addaction name="menuView"/>
</widget>
<widget class="QStatusBar" name="statusbar"/>
- <widget class="QDockWidget" name="outputDock">
+ <widget class="QDockWidget" name="skinPreviewDock">
<attribute name="dockWidgetArea">
<number>2</number>
</attribute>
<widget class="QWidget" name="dockWidgetContents">
+ <layout class="QVBoxLayout" name="verticalLayout_2">
+ <item>
+ <widget class="QLabel" name="label_3">
+ <property name="text">
+ <string>Skin Preview</string>
+ </property>
+ <property name="buddy">
+ <cstring>skinPreview</cstring>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGraphicsView" name="skinPreview"/>
+ </item>
+ </layout>
+ </widget>
+ </widget>
+ <widget class="QToolBar" name="toolBar">
+ <property name="windowTitle">
+ <string>toolBar</string>
+ </property>
+ <attribute name="toolBarArea">
+ <enum>TopToolBarArea</enum>
+ </attribute>
+ <attribute name="toolBarBreak">
+ <bool>true</bool>
+ </attribute>
+ </widget>
+ <widget class="QDockWidget" name="fileDock">
+ <attribute name="dockWidgetArea">
+ <number>1</number>
+ </attribute>
+ <widget class="QWidget" name="dockWidgetContents_2">
+ <layout class="QVBoxLayout" name="verticalLayout_4">
+ <item>
+ <widget class="QLabel" name="label_2">
+ <property name="text">
+ <string>Files</string>
+ </property>
+ <property name="buddy">
+ <cstring>fileTree</cstring>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QTreeView" name="fileTree"/>
+ </item>
+ </layout>
+ </widget>
+ </widget>
+ <widget class="QDockWidget" name="parseTreeDock">
+ <attribute name="dockWidgetArea">
+ <number>2</number>
+ </attribute>
+ <widget class="QWidget" name="dockWidgetContents_3">
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
- <layout class="QVBoxLayout" name="verticalLayout_2">
- <item>
- <widget class="QTreeView" name="parseTree"/>
- </item>
- <item>
- <widget class="QPushButton" name="fromTree">
- <property name="text">
- <string>Update Code</string>
- </property>
- </widget>
- </item>
- </layout>
+ <widget class="QLabel" name="label">
+ <property name="text">
+ <string>Parse Tree</string>
+ </property>
+ <property name="buddy">
+ <cstring>parseTree</cstring>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QTreeView" name="parseTree"/>
+ </item>
+ <item>
+ <widget class="QPushButton" name="fromTree">
+ <property name="text">
+ <string>Update Code</string>
+ </property>
+ </widget>
</item>
</layout>
</widget>
@@ -77,6 +149,47 @@
<string>Ctrl+Q</string>
</property>
</action>
+ <action name="actionDisplay_Panel">
+ <property name="checkable">
+ <bool>true</bool>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ <property name="text">
+ <string>Parse Tree Panel</string>
+ </property>
+ <property name="shortcut">
+ <string>Ctrl+D</string>
+ </property>
+ </action>
+ <action name="actionPreferences">
+ <property name="text">
+ <string>Preferences</string>
+ </property>
+ </action>
+ <action name="actionFile_Panel">
+ <property name="checkable">
+ <bool>true</bool>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ <property name="text">
+ <string>File Panel</string>
+ </property>
+ </action>
+ <action name="actionPreview_Panel">
+ <property name="checkable">
+ <bool>true</bool>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ <property name="text">
+ <string>Preview Panel</string>
+ </property>
+ </action>
</widget>
<resources/>
<connections>
@@ -96,5 +209,101 @@
</hint>
</hints>
</connection>
+ <connection>
+ <sender>actionDisplay_Panel</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>parseTreeDock</receiver>
+ <slot>setVisible(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>-1</x>
+ <y>-1</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>680</x>
+ <y>129</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>parseTreeDock</sender>
+ <signal>visibilityChanged(bool)</signal>
+ <receiver>actionDisplay_Panel</receiver>
+ <slot>setChecked(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>680</x>
+ <y>129</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>-1</x>
+ <y>-1</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>actionFile_Panel</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>fileDock</receiver>
+ <slot>setVisible(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>-1</x>
+ <y>-1</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>79</x>
+ <y>206</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>fileDock</sender>
+ <signal>visibilityChanged(bool)</signal>
+ <receiver>actionFile_Panel</receiver>
+ <slot>setChecked(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>79</x>
+ <y>206</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>-1</x>
+ <y>-1</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>actionPreview_Panel</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>skinPreviewDock</receiver>
+ <slot>setVisible(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>-1</x>
+ <y>-1</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>680</x>
+ <y>112</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>skinPreviewDock</sender>
+ <signal>visibilityChanged(bool)</signal>
+ <receiver>actionPreview_Panel</receiver>
+ <slot>setChecked(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>680</x>
+ <y>112</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>-1</x>
+ <y>-1</y>
+ </hint>
+ </hints>
+ </connection>
</connections>
</ui>
diff --git a/utils/themeeditor/parsetreemodel.cpp b/utils/themeeditor/parsetreemodel.cpp
index 918903bb68..eecdc98334 100644
--- a/utils/themeeditor/parsetreemodel.cpp
+++ b/utils/themeeditor/parsetreemodel.cpp
@@ -131,7 +131,10 @@ int ParseTreeModel::rowCount(const QModelIndex &parent) const
int ParseTreeModel::columnCount(const QModelIndex &parent) const
{
- return numColumns;
+ if(parent.isValid())
+ return numColumns;
+ else
+ return numColumns;
}
QVariant ParseTreeModel::data(const QModelIndex &index, int role) const