diff options
| author | Ben Boeckel <MathStuf@gmail.com> | 2009-03-29 13:11:51 -0400 |
|---|---|---|
| committer | Ben Boeckel <MathStuf@gmail.com> | 2009-03-29 13:11:51 -0400 |
| commit | 6781e2bcd051ace8da25dbd9e6950c87045753ef (patch) | |
| tree | 734cdbd2ddf05f0af9c5e3ada807d2780a5f3387 /sigmodr/widgets/mapeditor/MapEditor.cpp | |
| parent | 7da85e52c1a0015213c0e905d7dbc5631a0b0904 (diff) | |
Move the map editing classes to a subdirectory
Diffstat (limited to 'sigmodr/widgets/mapeditor/MapEditor.cpp')
| -rw-r--r-- | sigmodr/widgets/mapeditor/MapEditor.cpp | 101 |
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); +} |
