summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--LayoutStudio.pro6
-rw-r--r--lslayoutwindow.cpp46
-rw-r--r--lslayoutwindow.h32
-rw-r--r--lsmainwindow.cpp19
-rw-r--r--lsmainwindow.h1
5 files changed, 102 insertions, 2 deletions
diff --git a/LayoutStudio.pro b/LayoutStudio.pro
index 815dcdc..1ec2b7d 100644
--- a/LayoutStudio.pro
+++ b/LayoutStudio.pro
@@ -36,7 +36,8 @@ SOURCES += main.cpp \
layoutgl/texturemanager.cpp \
layoutgl/widget.cpp \
wii/texpalette.cpp \
- lspackagemodel.cpp
+ lspackagemodel.cpp \
+ lslayoutwindow.cpp
HEADERS += lsmainwindow.h \
lsglobals.h \
lyt/packagebase.h \
@@ -71,7 +72,8 @@ HEADERS += lsmainwindow.h \
layoutgl/widget.h \
wii/texpalette.h \
wii/gx.h \
- lspackagemodel.h
+ lspackagemodel.h \
+ lslayoutwindow.h
FORMS +=
RESOURCES += resources.qrc
diff --git a/lslayoutwindow.cpp b/lslayoutwindow.cpp
new file mode 100644
index 0000000..25baf41
--- /dev/null
+++ b/lslayoutwindow.cpp
@@ -0,0 +1,46 @@
+#include "lslayoutwindow.h"
+#include <QGridLayout>
+#include <QFormLayout>
+#include <QGroupBox>
+
+LSLayoutWindow::LSLayoutWindow(LYTPackageBase *pkg, const QString &layoutName, QWidget *parent) :
+ QMainWindow(parent) {
+
+ m_layoutName = layoutName;
+ m_package = pkg;
+
+
+ m_tabWidget = new QTabWidget(this);
+ setCentralWidget(m_tabWidget);
+
+ QWidget *w;
+
+ // prepare the Settings tab
+ w = new QWidget(this);
+ QGridLayout *sgrid = new QGridLayout(w);
+
+ QGroupBox *sizeGroup = new QGroupBox("Layout Size", this);
+ sgrid->addWidget(sizeGroup, 0, 0, 1, 2);
+
+ QFormLayout *sizeForm = new QFormLayout(sizeGroup);
+
+ m_widthBox = new QDoubleSpinBox(this);
+ m_widthBox->setRange(0.0, 1000.0);
+ m_heightBox = new QDoubleSpinBox(this);
+ m_heightBox->setRange(0.0, 1000.0);
+
+ sizeForm->addRow("Width", m_widthBox);
+ sizeForm->addRow("Height", m_heightBox);
+
+
+ QGroupBox *matGroup = new QGroupBox("Materials", this);
+ QGroupBox *grpGroup = new QGroupBox("Groups", this);
+
+ sgrid->addWidget(matGroup, 1, 0, 1, 1);
+ sgrid->addWidget(grpGroup, 1, 1, 1, 1);
+ sgrid->setRowStretch(1, 1);
+
+ m_tabWidget->addTab(w, "Settings");
+}
+
+
diff --git a/lslayoutwindow.h b/lslayoutwindow.h
new file mode 100644
index 0000000..51158a0
--- /dev/null
+++ b/lslayoutwindow.h
@@ -0,0 +1,32 @@
+#ifndef LSLAYOUTWINDOW_H
+#define LSLAYOUTWINDOW_H
+
+#include <QMainWindow>
+#include <QTabWidget>
+#include <QDoubleSpinBox>
+#include "lyt/packagebase.h"
+
+class LSLayoutWindow : public QMainWindow {
+ Q_OBJECT
+public:
+ explicit LSLayoutWindow(LYTPackageBase *pkg, const QString &layoutName, QWidget *parent = 0);
+
+ QString layoutName() const { return m_layoutName; }
+ // TODO: set layoutname method
+
+private:
+ QString m_layoutName;
+ LYTPackageBase *m_package;
+
+ QTabWidget *m_tabWidget;
+
+ // settings
+ QDoubleSpinBox *m_widthBox, *m_heightBox;
+
+signals:
+
+public slots:
+
+};
+
+#endif // LSLAYOUTWINDOW_H
diff --git a/lsmainwindow.cpp b/lsmainwindow.cpp
index 66c51b3..4e6af5f 100644
--- a/lsmainwindow.cpp
+++ b/lsmainwindow.cpp
@@ -22,6 +22,7 @@
#include <QInputDialog>
#include <QMessageBox>
#include "lyt/archivepackage.h"
+#include "lslayoutwindow.h"
LSMainWindow::LSMainWindow(QWidget *parent) : QMainWindow(parent) {
m_package = 0;
@@ -33,6 +34,8 @@ LSMainWindow::LSMainWindow(QWidget *parent) : QMainWindow(parent) {
m_view = new QTreeView(this);
setCentralWidget(m_view);
+ connect(m_view, SIGNAL(activated(QModelIndex)), SLOT(handleItemActivated(QModelIndex)));
+
newArchive();
}
@@ -183,6 +186,22 @@ LYTPackageBase::ItemType LSMainWindow::selectedItemType() const {
}
+void LSMainWindow::handleItemActivated(const QModelIndex &index) {
+ QString what = selectedItem();
+ LYTPackageBase::ItemType whatType = selectedItemType();
+
+ if (what.isEmpty())
+ return;
+
+ switch (whatType) {
+ case LYTPackageBase::Layout:
+ LSLayoutWindow *w = new LSLayoutWindow(m_package, what);
+ w->show();
+ break;
+ }
+}
+
+
bool LSMainWindow::ensureSaved() {
// TODO
return false;
diff --git a/lsmainwindow.h b/lsmainwindow.h
index 745b4f2..639725b 100644
--- a/lsmainwindow.h
+++ b/lsmainwindow.h
@@ -46,6 +46,7 @@ private slots:
void handleAddSomething(int whatToAdd);
void handleRenameItem();
void handleRemoveItem();
+ void handleItemActivated(const QModelIndex &index);
private:
LYTPackageBase *m_package;