summaryrefslogtreecommitdiffstats
path: root/sigmodr/widgets/mapeditor/MapEditor.cpp
diff options
context:
space:
mode:
authorBen Boeckel <MathStuf@gmail.com>2009-03-29 13:11:51 -0400
committerBen Boeckel <MathStuf@gmail.com>2009-03-29 13:11:51 -0400
commit6781e2bcd051ace8da25dbd9e6950c87045753ef (patch)
tree734cdbd2ddf05f0af9c5e3ada807d2780a5f3387 /sigmodr/widgets/mapeditor/MapEditor.cpp
parent7da85e52c1a0015213c0e905d7dbc5631a0b0904 (diff)
Move the map editing classes to a subdirectory
Diffstat (limited to 'sigmodr/widgets/mapeditor/MapEditor.cpp')
-rw-r--r--sigmodr/widgets/mapeditor/MapEditor.cpp101
1 files changed, 101 insertions, 0 deletions
diff --git a/sigmodr/widgets/mapeditor/MapEditor.cpp b/sigmodr/widgets/mapeditor/MapEditor.cpp
new file mode 100644
index 00000000..39bc136c
--- /dev/null
+++ b/sigmodr/widgets/mapeditor/MapEditor.cpp
@@ -0,0 +1,101 @@
+/*
+ * Copyright 2008-2009 Ben Boeckel <MathStuf@gmail.com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+// Header include
+#include "MapEditor.h"
+
+// Sigmodr widget includes
+#include "MapScene.h"
+
+// KDE includes
+#include <KAction>
+#include <KIcon>
+#include <KMenu>
+#include <KPushButton>
+
+// Qt includes
+#include <QtCore/QFile>
+#include <QtCore/QSignalMapper>
+#include <QtGui/QCheckBox>
+#include <QtGui/QGraphicsView>
+#include <QtGui/QVBoxLayout>
+#include <QtUiTools/QUiLoader>
+
+using namespace Sigmod;
+using namespace Sigmodr::Widgets;
+
+MapEditor::MapEditor(Map* map, QWidget* parent) :
+ QWidget(parent),
+ m_map(map),
+ m_scene(NULL)
+{
+ setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding);
+ QFile file(":/gui/mapeditor.ui");
+ file.open(QFile::ReadOnly);
+ QWidget *formWidget = QUiLoader().load(&file, this);
+ file.close();
+ ui_view = formWidget->findChild<QGraphicsView*>("varView");
+ reset();
+ KPushButton* buttonAdd = formWidget->findChild<KPushButton*>("buttonAdd");
+ KPushButton* buttonRemove = formWidget->findChild<KPushButton*>("buttonRemove");
+ KPushButton* buttonTop = formWidget->findChild<KPushButton*>("buttonTop");
+ KPushButton* buttonUp = formWidget->findChild<KPushButton*>("buttonUp");
+ KPushButton* buttonDown = formWidget->findChild<KPushButton*>("buttonDown");
+ KPushButton* buttonBottom = formWidget->findChild<KPushButton*>("buttonBottom");
+ QCheckBox* varShowEffects = formWidget->findChild<QCheckBox*>("varShowEffects");
+ QCheckBox* varShowTiles = formWidget->findChild<QCheckBox*>("varShowTiles");
+ QCheckBox* varShowTrainers = formWidget->findChild<QCheckBox*>("varShowTrainers");
+ QCheckBox* varShowWarps = formWidget->findChild<QCheckBox*>("varShowWarps");
+ buttonAdd->setIcon(KIcon("list-add"));
+ buttonRemove->setIcon(KIcon("list-remove"));
+ buttonTop->setIcon(KIcon("arrow-up-double"));
+ buttonUp->setIcon(KIcon("arrow-up"));
+ buttonDown->setIcon(KIcon("arrow-down"));
+ buttonBottom->setIcon(KIcon("arrow-down-double"));
+ connect(buttonAdd, SIGNAL(pressed()), m_scene, SLOT(addTile()));
+ connect(buttonRemove, SIGNAL(pressed()), m_scene, SLOT(removeSelected()));
+ connect(m_scene, SIGNAL(itemsSelected(bool)), buttonRemove, SLOT(setEnabled(bool)));
+ connect(buttonTop, SIGNAL(pressed()), m_scene, SLOT(moveToTop()));
+ connect(m_scene, SIGNAL(tilesSelected(bool)), buttonTop, SLOT(setEnabled(bool)));
+ connect(buttonUp, SIGNAL(pressed()), m_scene, SLOT(moveUp()));
+ connect(m_scene, SIGNAL(tilesSelected(bool)), buttonUp, SLOT(setEnabled(bool)));
+ connect(buttonDown, SIGNAL(pressed()), m_scene, SLOT(moveDown()));
+ connect(m_scene, SIGNAL(tilesSelected(bool)), buttonDown, SLOT(setEnabled(bool)));
+ connect(buttonBottom, SIGNAL(pressed()), m_scene, SLOT(moveToBottom()));
+ connect(m_scene, SIGNAL(tilesSelected(bool)), buttonBottom, SLOT(setEnabled(bool)));
+ connect(varShowEffects, SIGNAL(stateChanged(int)), m_scene, SLOT(showEffects(int)));
+ connect(varShowTiles, SIGNAL(stateChanged(int)), m_scene, SLOT(showTiles(int)));
+ connect(varShowTrainers, SIGNAL(stateChanged(int)), m_scene, SLOT(showTrainers(int)));
+ connect(varShowWarps, SIGNAL(stateChanged(int)), m_scene, SLOT(showWarps(int)));
+ QVBoxLayout* layout = new QVBoxLayout;
+ layout->addWidget(formWidget);
+ setLayout(layout);
+}
+
+void MapEditor::setMap(Map* map)
+{
+ m_map = map;
+ delete m_scene;
+ reset();
+}
+
+void MapEditor::reset()
+{
+ m_scene = new MapScene(m_map, this);
+ connect(m_scene, SIGNAL(changed()), this, SIGNAL(changed()));
+ ui_view->setScene(m_scene);
+}