diff options
author | Ben Boeckel <MathStuf@gmail.com> | 2009-03-19 01:47:36 -0400 |
---|---|---|
committer | Ben Boeckel <MathStuf@gmail.com> | 2009-03-19 01:47:36 -0400 |
commit | 96d55a41a75c24031217432fa4aa8dd9da9cab88 (patch) | |
tree | 13e98659b59f88cb89401062da50adf442b9a458 /sigmodr | |
parent | 5700e482e7ca6be75cbd4131d6bc065a793c84d1 (diff) | |
download | sigen-96d55a41a75c24031217432fa4aa8dd9da9cab88.tar.gz sigen-96d55a41a75c24031217432fa4aa8dd9da9cab88.tar.xz sigen-96d55a41a75c24031217432fa4aa8dd9da9cab88.zip |
Update the MapEditor
Diffstat (limited to 'sigmodr')
-rw-r--r-- | sigmodr/widgets/CMakeLists.txt | 2 | ||||
-rw-r--r-- | sigmodr/widgets/MapEditor.cpp | 90 | ||||
-rw-r--r-- | sigmodr/widgets/MapEditor.h | 30 |
3 files changed, 80 insertions, 42 deletions
diff --git a/sigmodr/widgets/CMakeLists.txt b/sigmodr/widgets/CMakeLists.txt index e448ea1a..96ba3b12 100644 --- a/sigmodr/widgets/CMakeLists.txt +++ b/sigmodr/widgets/CMakeLists.txt @@ -18,6 +18,7 @@ set(sigmodrwidgets_HEADERS ItemUI.h ItemTypeUI.h MapUI.h + MapEditor.h MapItem.h MapScene.h MapEffectUI.h @@ -62,6 +63,7 @@ set(sigmodrwidgets_SRCS ItemUI.cpp ItemTypeUI.cpp MapUI.cpp + MapEditor.cpp MapItem.cpp MapScene.cpp MapEffectUI.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 <MathStuf@gmail.com> + * 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 @@ -18,50 +18,84 @@ // Header include #include "MapEditor.h" -// Sigmodr includes +// 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/QGridLayout> +#include <QtGui/QVBoxLayout> +#include <QtUiTools/QUiLoader> -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<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(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); } diff --git a/sigmodr/widgets/MapEditor.h b/sigmodr/widgets/MapEditor.h index 4b6ba427..aeb06223 100644 --- a/sigmodr/widgets/MapEditor.h +++ b/sigmodr/widgets/MapEditor.h @@ -15,8 +15,11 @@ * with this program. If not, see <http://www.gnu.org/licenses/>. */ -#ifndef SIGMODR_MAPEDITOR -#define SIGMODR_MAPEDITOR +#ifndef SIGMODRWIDGETS_MAPEDITOR +#define SIGMODRWIDGETS_MAPEDITOR + +// Sigmodr widget includes +#include "Global.h" // Qt includes #include <QtGui/QWidget> @@ -32,35 +35,34 @@ class Map; namespace Sigmodr { +namespace Widgets +{ class MapScene; -class MapEditor : public QWidget +class SIGMODRWIDGETS_NO_EXPORT MapEditor : public QWidget { Q_OBJECT public: - MapEditor(QWidget* parent); + MapEditor(Sigmod::Map* map, QWidget* parent); void setMap(Sigmod::Map* map); void reset(); signals: + void showEffects(const bool show); + void showTiles(const bool show); + void showTrainers(const bool show); + void showWarps(const bool show); + void changed(); private: Sigmod::Map* m_map; MapScene* m_scene; - QGraphicsView* m_view; - - KPushButton* m_addTile; - KPushButton* m_removeTiles; - KPushButton* m_moveToTop; - KPushButton* m_moveUp; - KPushButton* m_moveDown; - KPushButton* m_moveToBottom; - - KComboBox* m_types; + QGraphicsView* ui_view; }; } +} #endif |