]> Shamusworld >> Repos - warehouse-man-deluxe/blobdiff - src/editorwindow.cpp
Added level editor.
[warehouse-man-deluxe] / src / editorwindow.cpp
diff --git a/src/editorwindow.cpp b/src/editorwindow.cpp
new file mode 100644 (file)
index 0000000..1ccc14c
--- /dev/null
@@ -0,0 +1,85 @@
+//
+// editorwindow.cpp: Game editor window
+//
+// by James Hammons
+// (C) 2014 Underground Software
+//
+// JLH = James Hammons <jlhamm@acm.org>
+//
+// Who  When        What
+// ---  ----------  ------------------------------------------------------------
+// JLH  07/03/2014  Created this file
+//
+
+#include "editorwindow.h"
+#include "editorwidget.h"
+
+
+EditorWindow::EditorWindow(QWidget * parent/*= 0*/): QWidget(parent, Qt::Window)
+{
+       list = new QListWidget;
+       up = new QPushButton("^");
+       down = new QPushButton("v");
+       add = new QPushButton("+");
+       remove = new QPushButton("-");
+       editor = new EditorWidget(parent);
+
+       list->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Preferred);
+//     editor->setFocus(); //DISNOWOK
+//     editor->Load();
+
+       for(unsigned int i=0; i<editor->levelStorage.size(); i++)
+       {
+               list->addItem(QString(editor->levelStorage[i].name));
+               QListWidgetItem * item = list->item(i);
+               item->setFlags(item->flags() | Qt::ItemIsEditable);
+       }
+
+       QHBoxLayout * buttonBox = new QHBoxLayout;
+       QVBoxLayout * listBox = new QVBoxLayout;
+       QHBoxLayout * mainBox = new QHBoxLayout;
+
+       buttonBox->addWidget(up);
+       buttonBox->addWidget(down);
+       buttonBox->addWidget(add);
+       buttonBox->addWidget(remove);
+
+       listBox->addWidget(list);
+       listBox->addLayout(buttonBox);
+
+       mainBox->addLayout(listBox);
+       mainBox->addWidget(editor);
+
+       setLayout(mainBox);
+       setWindowTitle("Editor");
+
+       connect(list, SIGNAL(currentRowChanged(int)), this, SLOT(SetEditorLevel(int)));
+       connect(list->itemDelegate(), SIGNAL(closeEditor(QWidget *, QAbstractItemDelegate::EndEditHint)), this, SLOT(SetNewName(QWidget *, QAbstractItemDelegate::EndEditHint)));
+}
+
+
+EditorWindow::~EditorWindow(void)
+{
+//     editor->Save();
+       delete editor;
+       delete up;
+       delete down;
+       delete add;
+       delete remove;
+       delete list;
+}
+
+
+void EditorWindow::SetEditorLevel(int level)
+{
+       editor->currentLevel = level;
+       editor->update();
+}
+
+
+void EditorWindow::SetNewName(QWidget * widget, QAbstractItemDelegate::EndEditHint)
+{
+       QString newName = reinterpret_cast<QLineEdit *>(widget)->text();
+       editor->SetNameOnCurrentLevel(newName.toAscii().data());
+}
+