diff options
Diffstat (limited to 'sigmodr/widgets/MapEditor.cpp')
| -rw-r--r-- | sigmodr/widgets/MapEditor.cpp | 90 |
1 files changed, 62 insertions, 28 deletions
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); } |
