summaryrefslogtreecommitdiff
path: root/lstexcoordseteditor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lstexcoordseteditor.cpp')
-rw-r--r--lstexcoordseteditor.cpp174
1 files changed, 0 insertions, 174 deletions
diff --git a/lstexcoordseteditor.cpp b/lstexcoordseteditor.cpp
deleted file mode 100644
index e8173a0..0000000
--- a/lstexcoordseteditor.cpp
+++ /dev/null
@@ -1,174 +0,0 @@
-#include "lstexcoordseteditor.h"
-#include <QLabel>
-#include <QHBoxLayout>
-#include <QGridLayout>
-
-LSTexCoordSetEditor::LSTexCoordSetEditor(QWidget *parent) :
- QWidget(parent) {
-
- m_loadingThings = 1;
-
- m_coordCount = new QSpinBox(this);
- m_coordCount->setRange(0, 8);
- connect(m_coordCount, SIGNAL(valueChanged(int)), SLOT(handleCoordCountChanged(int)));
-
- m_chooser = new QComboBox(this);
- connect(m_chooser, SIGNAL(currentIndexChanged(int)), SLOT(handleSetSelected(int)));
-
- for (int i = 0; i < 8; i++) {
- m_coordEntry[i] = new QDoubleSpinBox(this);
- m_coordEntry[i]->setRange(-10000000.0, 10000000.0);
- connect(m_coordEntry[i], SIGNAL(valueChanged(double)), SLOT(handleCoordChanged(double)));
- }
-
-
- QHBoxLayout *topLayout = new QHBoxLayout;
- topLayout->addWidget(new QLabel("Count:", this));
- topLayout->addWidget(m_coordCount);
- topLayout->addSpacing(10);
- topLayout->addWidget(m_chooser, 1);
-
- // Layout:
- // 0 1 2 3 4
- // 0 <Chooser>
- // 1 x y x y
- // 2
- // 3 x y x y
-
- QGridLayout *layout = new QGridLayout(this);
- layout->addLayout(topLayout, 0, 0, 1, 5);
-
- layout->addWidget(m_coordEntry[0], 1, 0, 1, 1);
- layout->addWidget(m_coordEntry[1], 1, 1, 1, 1);
-
- layout->addWidget(m_coordEntry[2], 1, 3, 1, 1);
- layout->addWidget(m_coordEntry[3], 1, 4, 1, 1);
-
- layout->addWidget(m_coordEntry[4], 3, 0, 1, 1);
- layout->addWidget(m_coordEntry[5], 3, 1, 1, 1);
-
- layout->addWidget(m_coordEntry[6], 3, 3, 1, 1);
- layout->addWidget(m_coordEntry[7], 3, 4, 1, 1);
-
- layout->setColumnMinimumWidth(2, 25);
- layout->setRowMinimumHeight(2, 10);
-
- m_loadingThings--;
-}
-
-
-void LSTexCoordSetEditor::setCoordPtr(QVector<LYTTexCoords> *coords) {
- m_loadingThings++;
-
- m_targetCoords = coords;
-
- m_coordCount->setValue(coords->count());
-
- changeChooserCountTo(coords->count());
-
- m_chooser->setCurrentIndex(coords->count() ? 0 : -1);
- showCoordSet(coords->count() ? 0 : -1);
-
- m_loadingThings--;
-}
-
-void LSTexCoordSetEditor::changeChooserCountTo(int count) {
- m_loadingThings++;
-
- int existingCount = m_chooser->count();
-
- if (existingCount > count) {
- // remove something
- int nowSelected = m_chooser->currentIndex();
-
- if (nowSelected >= count) {
- // oops, we'll need to select something else
- showCoordSet(count - 1);
- m_chooser->setCurrentIndex(count - 1);
- }
-
- for (int i = (existingCount - 1); i >= count; i--)
- m_chooser->removeItem(i);
-
- } else if (count > existingCount) {
- // add something
-
- for (int i = existingCount; i < count; i++)
- m_chooser->addItem(QString("Set %1").arg(i + 1));
- }
-
- m_loadingThings--;
-}
-
-void LSTexCoordSetEditor::showCoordSet(int index) {
- m_loadingThings++;
-
- bool doesExist = (index != -1);
-
- for (int i = 0; i < 8; i++)
- m_coordEntry[i]->setEnabled(doesExist);
-
- if (doesExist) {
- const LYTTexCoords &set = m_targetCoords->at(index);
-
- for (int i = 0; i < 4; i++) {
- m_coordEntry[i*2]->setValue(set.coord[i].x());
- m_coordEntry[i*2+1]->setValue(set.coord[i].y());
- }
- }
-
- m_loadingThings--;
-}
-
-
-void LSTexCoordSetEditor::handleSetSelected(int index) {
- if (!m_loadingThings)
- showCoordSet(index);
-}
-
-void LSTexCoordSetEditor::handleCoordCountChanged(int count) {
- if (!m_loadingThings) {
- int oldCount = m_targetCoords->count();
- if (oldCount == count)
- return;
-
- changeChooserCountTo(count);
- m_targetCoords->resize(count);
-
- // moving from 0 to something...?
- if (oldCount == 0) {
- m_chooser->setCurrentIndex(0);
- showCoordSet(0);
- }
-
- emit coordsEdited();
- }
-}
-
-void LSTexCoordSetEditor::handleCoordChanged(double value) {
- if (!m_loadingThings) {
- // this code is.. kind of hacky.
-
- int whatID = -1;
- for (int i = 0; i < 8; i++)
- if (m_coordEntry[i] == sender()) {
- whatID = i;
- break;
- }
-
- if (whatID >= 0) {
- int coordIdx = m_chooser->currentIndex();
- if (coordIdx == -1)
- return;
-
- LYTTexCoords &coord = (*m_targetCoords)[coordIdx];
-
- if ((whatID % 2) == 1)
- coord.coord[whatID / 2].setY(value);
- else
- coord.coord[whatID / 2].setX(value);
-
- emit coordsEdited();
- }
- }
-}