From 96d55a41a75c24031217432fa4aa8dd9da9cab88 Mon Sep 17 00:00:00 2001 From: Ben Boeckel Date: Thu, 19 Mar 2009 01:47:36 -0400 Subject: Update the MapEditor --- sigmodr/widgets/MapEditor.cpp | 90 +++++++++++++++++++++++++++++-------------- 1 file changed, 62 insertions(+), 28 deletions(-) (limited to 'sigmodr/widgets/MapEditor.cpp') diff --git a/sigmodr/widgets/MapEditor.cpp b/sigmodr/widgets/MapEditor.cpp index aeff1312..58165951 100644 --- a/sigmodr/widgets/MapEditor.cpp +++ b/sigmodr/widgets/MapEditor.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2008 Ben Boeckel + * Copyright 2008-2009 Ben Boeckel * * 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 @@ -18,50 +18,84 @@ // Header include #include "MapEditor.h" -// Sigmodr includes +// Sigmodr widget includes #include "MapScene.h" // KDE includes +#include #include +#include #include // Qt includes +#include +#include +#include #include -#include +#include +#include -Sigmodr::MapEditor::MapEditor(QWidget* parent) : - QWidget(parent) +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); - QGridLayout* layout = new QGridLayout; - m_view = new QGraphicsView; - m_view->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); - layout->addWidget(m_view, 0, 0, 6, 1); - m_addTile = new KPushButton(KIcon("list-add"), "Add Tile"); - layout->addWidget(m_addTile, 0, 1, 1, 1); - m_removeTiles = new KPushButton(KIcon("list-remove"), "Remove Tiles"); - layout->addWidget(m_removeTiles, 1, 1, 1, 1); - m_moveToTop = new KPushButton(KIcon("arrow-up-double"), "Move to Top"); - layout->addWidget(m_moveToTop, 2, 1, 1, 1); - m_moveUp = new KPushButton(KIcon("arrow-up"), "Move Up"); - layout->addWidget(m_moveUp, 3, 1, 1, 1); - m_moveDown = new KPushButton(KIcon("arrow-down"), "Move Down"); - layout->addWidget(m_moveDown, 4, 1, 1, 1); - m_moveToBottom = new KPushButton(KIcon("arrow-down-double"), "Move to Bottom"); - layout->addWidget(m_moveToBottom, 5, 1, 1, 1); + QFile file(":/gui/mapeditor.ui"); + file.open(QFile::ReadOnly); + QWidget *formWidget = QUiLoader().load(&file, this); + file.close(); + ui_view = formWidget->findChild("varView"); + reset(); + KPushButton* buttonAdd = formWidget->findChild("buttonAdd"); + KPushButton* buttonRemove = formWidget->findChild("buttonRemove"); + KPushButton* buttonTop = formWidget->findChild("buttonTop"); + KPushButton* buttonUp = formWidget->findChild("buttonUp"); + KPushButton* buttonDown = formWidget->findChild("buttonDown"); + KPushButton* buttonBottom = formWidget->findChild("buttonBottom"); + QCheckBox* varShowEffects = formWidget->findChild("varShowEffects"); + QCheckBox* varShowTiles = formWidget->findChild("varShowTiles"); + QCheckBox* varShowTrainers = formWidget->findChild("varShowTrainers"); + QCheckBox* varShowWarps = formWidget->findChild("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(remove())); + 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, SIGNAL(showEffects(int))); + connect(varShowTiles, SIGNAL(stateChanged(int)), m_scene, SIGNAL(showTiles(int))); + connect(varShowTrainers, SIGNAL(stateChanged(int)), m_scene, SIGNAL(showTrainers(int))); + connect(varShowWarps, SIGNAL(stateChanged(int)), m_scene, SIGNAL(showWarps(int))); + QVBoxLayout* layout = new QVBoxLayout; + layout->addWidget(formWidget); setLayout(layout); } -void Sigmodr::MapEditor::setMap(Sigmod::Map* map) +void MapEditor::setMap(Map* map) { m_map = map; - m_scene = new MapScene(map, this); - connect(m_scene, SIGNAL(changed()), this, SIGNAL(changed())); - connect(m_addTile, SIGNAL(pressed()), m_scene, SLOT(addTile())); - connect(m_removeTiles, SIGNAL(pressed()), m_scene, SLOT(removeTiles())); - m_view->setScene(m_scene); + delete m_scene; + reset(); } -void Sigmodr::MapEditor::reset() +void MapEditor::reset() { + m_scene = new MapScene(m_map, this); + connect(m_scene, SIGNAL(changed()), this, SIGNAL(changed())); + ui_view->setScene(m_scene); } -- cgit