livelcreator added
This commit is contained in:
parent
6e23ac1eeb
commit
6191258856
22
Black_okospace_levelcreator/Black_okospace_levelcreator.pro
Normal file
22
Black_okospace_levelcreator/Black_okospace_levelcreator.pro
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
#-------------------------------------------------
|
||||||
|
#
|
||||||
|
# Project created by QtCreator 2013-11-04T12:10:54
|
||||||
|
#
|
||||||
|
#-------------------------------------------------
|
||||||
|
|
||||||
|
QT += core gui
|
||||||
|
|
||||||
|
TARGET = Black_okospace_levelcreator
|
||||||
|
TEMPLATE = app
|
||||||
|
|
||||||
|
|
||||||
|
SOURCES += main.cpp\
|
||||||
|
mainwindow.cpp \
|
||||||
|
leveldata.cpp \
|
||||||
|
customlabel.cpp
|
||||||
|
|
||||||
|
HEADERS += mainwindow.h \
|
||||||
|
leveldata.h \
|
||||||
|
customlabel.h
|
||||||
|
|
||||||
|
FORMS += mainwindow.ui
|
32
Black_okospace_levelcreator/customlabel.cpp
Normal file
32
Black_okospace_levelcreator/customlabel.cpp
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
#include "customlabel.h"
|
||||||
|
|
||||||
|
CustomLabel::CustomLabel(QWidget *parent) :
|
||||||
|
QLabel(parent)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void CustomLabel::mousePressEvent(QMouseEvent *ev)
|
||||||
|
{
|
||||||
|
emit buttonPressed(ev->x(), ev->y());
|
||||||
|
}
|
||||||
|
|
||||||
|
void CustomLabel::mouseReleaseEvent(QMouseEvent * ev)
|
||||||
|
{
|
||||||
|
|
||||||
|
if (ev->button() == Qt::LeftButton)
|
||||||
|
{
|
||||||
|
emit leftButtonReleased(ev->x(), ev->y());
|
||||||
|
}
|
||||||
|
if (ev->button() == Qt::RightButton)
|
||||||
|
{
|
||||||
|
emit rightButtonReleased(ev->x(), ev->y());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void CustomLabel::mouseMoveEvent(QMouseEvent *ev)
|
||||||
|
{
|
||||||
|
if (ev->buttons() & Qt::RightButton)
|
||||||
|
{
|
||||||
|
emit mouseMoveWithRightButtonPressed(ev->x(), ev->y());
|
||||||
|
}
|
||||||
|
}
|
30
Black_okospace_levelcreator/customlabel.h
Normal file
30
Black_okospace_levelcreator/customlabel.h
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
#ifndef CUSTOMLABEL_H
|
||||||
|
#define CUSTOMLABEL_H
|
||||||
|
|
||||||
|
#include <QLabel>
|
||||||
|
#include <QMouseEvent>
|
||||||
|
|
||||||
|
class CustomLabel : public QLabel
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
explicit CustomLabel(QWidget *parent = 0);
|
||||||
|
|
||||||
|
signals:
|
||||||
|
void buttonPressed(int x, int y);
|
||||||
|
|
||||||
|
void leftButtonReleased(int x, int y);
|
||||||
|
void rightButtonReleased(int x, int y);
|
||||||
|
void mouseMoveWithRightButtonPressed(int x, int y);
|
||||||
|
|
||||||
|
|
||||||
|
public slots:
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual void mousePressEvent(QMouseEvent *ev);
|
||||||
|
virtual void mouseReleaseEvent(QMouseEvent * ev);
|
||||||
|
virtual void mouseMoveEvent(QMouseEvent *ev);
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // CUSTOMLABEL_H
|
173
Black_okospace_levelcreator/leveldata.cpp
Normal file
173
Black_okospace_levelcreator/leveldata.cpp
Normal file
@ -0,0 +1,173 @@
|
|||||||
|
#include "leveldata.h"
|
||||||
|
|
||||||
|
#include "mainwindow.h"
|
||||||
|
|
||||||
|
#include <QPainter>
|
||||||
|
|
||||||
|
const int CONST_SELECTION_DISTANCE = 10;
|
||||||
|
|
||||||
|
LevelData::LevelData(QObject *parent)
|
||||||
|
: QObject(parent)
|
||||||
|
{
|
||||||
|
ResetSelected();
|
||||||
|
}
|
||||||
|
|
||||||
|
LevelData::~LevelData()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void LevelData::OnSelectPoint(int x, int y)
|
||||||
|
{
|
||||||
|
selectedPoly = -1;
|
||||||
|
selectedPoint = -1;
|
||||||
|
|
||||||
|
for (int i = 0; i < PolyArr.size(); i++)
|
||||||
|
{
|
||||||
|
for (int j=0; j < PolyArr[i].pointArr.size(); j++)
|
||||||
|
{
|
||||||
|
if (abs(PolyArr[i].pointArr[j].x() - x) < CONST_SELECTION_DISTANCE && abs(PolyArr[i].pointArr[j].y() - y) < CONST_SELECTION_DISTANCE)
|
||||||
|
{
|
||||||
|
selectedPoly = i;
|
||||||
|
selectedPoint = j;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
RefreshPixmap();
|
||||||
|
}
|
||||||
|
|
||||||
|
void LevelData::OnMovePoint(int x, int y)
|
||||||
|
{
|
||||||
|
QPoint shift = QPoint(x, y) - LastMouseDownPos;
|
||||||
|
//QPoint shift = QPoint(x, y);
|
||||||
|
|
||||||
|
if (selectedPoly != -1 && selectedPoint != -1)
|
||||||
|
{
|
||||||
|
PolyArr[selectedPoly].pointArr[selectedPoint] += shift;
|
||||||
|
}
|
||||||
|
|
||||||
|
LastMouseDownPos = QPoint(x, y);
|
||||||
|
|
||||||
|
RefreshPixmap();
|
||||||
|
}
|
||||||
|
|
||||||
|
void LevelData::OnAddPoint(int x, int y)
|
||||||
|
{
|
||||||
|
tempPointArr.push_back(QPoint(x,y));
|
||||||
|
RefreshPixmap();
|
||||||
|
}
|
||||||
|
|
||||||
|
void LevelData::RefreshPixmap()
|
||||||
|
{
|
||||||
|
mainWindow->Pixmap->convertFromImage(mainWindow->bkgImage);
|
||||||
|
|
||||||
|
QPainter pixPaint(mainWindow->Pixmap);
|
||||||
|
|
||||||
|
for (size_t i = 0; i < tempPointArr.size(); i++)
|
||||||
|
{
|
||||||
|
QBrush brush(Qt::red);
|
||||||
|
QPen pen(Qt::red);
|
||||||
|
pixPaint.setBrush(brush);
|
||||||
|
pixPaint.setPen(pen);
|
||||||
|
pixPaint.drawEllipse(tempPointArr[i], 3, 3);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (size_t i = 0; i < PolyArr.size(); i++)
|
||||||
|
{
|
||||||
|
QBrush brush(QColor::fromRgb(255, 0, 255));
|
||||||
|
QPen pen(QColor::fromRgb(255, 0, 255));
|
||||||
|
pixPaint.setBrush(brush);
|
||||||
|
pixPaint.setPen(pen);
|
||||||
|
|
||||||
|
QPoint point1;
|
||||||
|
QPoint point2;
|
||||||
|
|
||||||
|
for (size_t j=0; j< PolyArr[i].pointArr.size()-1; j++)
|
||||||
|
{
|
||||||
|
point1 = PolyArr[i].pointArr[j];
|
||||||
|
point2 = PolyArr[i].pointArr[j+1];
|
||||||
|
pixPaint.drawLine(point1, point2);
|
||||||
|
}
|
||||||
|
|
||||||
|
point1 = PolyArr[i].pointArr[PolyArr[i].pointArr.size()-1];
|
||||||
|
point2 = PolyArr[i].pointArr[0];
|
||||||
|
pixPaint.drawLine(point1, point2);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (selectedPoly != -1 && selectedPoint != -1)
|
||||||
|
{
|
||||||
|
QBrush brush(QColor::fromRgb(255, 0, 255));
|
||||||
|
QPen pen(QColor::fromRgb(255, 0, 255));
|
||||||
|
pixPaint.setBrush(brush);
|
||||||
|
pixPaint.setPen(pen);
|
||||||
|
|
||||||
|
pixPaint.drawEllipse(PolyArr[selectedPoly].pointArr[selectedPoint], 3, 3);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
mainWindow->SetImagePixmap(mainWindow->Pixmap);
|
||||||
|
}
|
||||||
|
|
||||||
|
void LevelData::OnApplyPointList(int x, int y)
|
||||||
|
{
|
||||||
|
if (tempPointArr.size() >= 3)
|
||||||
|
{
|
||||||
|
TPoly poly;
|
||||||
|
poly.pointArr = tempPointArr;
|
||||||
|
PolyArr.push_back(poly);
|
||||||
|
tempPointArr.clear();
|
||||||
|
}
|
||||||
|
RefreshPixmap();
|
||||||
|
}
|
||||||
|
|
||||||
|
void LevelData::ResetSelected()
|
||||||
|
{
|
||||||
|
selectedPoly = -1;
|
||||||
|
selectedPoint = -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void LevelData::ResetTempPoints()
|
||||||
|
{
|
||||||
|
tempPointArr.clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
void LevelData::Clear()
|
||||||
|
{
|
||||||
|
tempPointArr.clear();
|
||||||
|
PolyArr.clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
void LevelData::OnMouseDown(int x, int y)
|
||||||
|
{
|
||||||
|
LastMouseDownPos = QPoint(x, y);
|
||||||
|
}
|
||||||
|
|
||||||
|
void LevelData::DeleteSelectedPoint()
|
||||||
|
{
|
||||||
|
if (selectedPoly != -1 && selectedPoint != -1)
|
||||||
|
{
|
||||||
|
|
||||||
|
PolyArr[selectedPoly].pointArr.erase(PolyArr[selectedPoly].pointArr.begin() + selectedPoint);
|
||||||
|
|
||||||
|
if (PolyArr[selectedPoly].pointArr.size() < 3)
|
||||||
|
{
|
||||||
|
PolyArr.erase(PolyArr.begin() + selectedPoly);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ResetSelected();
|
||||||
|
RefreshPixmap();
|
||||||
|
}
|
||||||
|
|
||||||
|
void LevelData::DeleteLastTempPoint()
|
||||||
|
{
|
||||||
|
if (tempPointArr.size() > 0)
|
||||||
|
{
|
||||||
|
tempPointArr.erase(tempPointArr.end()-1);
|
||||||
|
}
|
||||||
|
RefreshPixmap();
|
||||||
|
}
|
52
Black_okospace_levelcreator/leveldata.h
Normal file
52
Black_okospace_levelcreator/leveldata.h
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
#ifndef LEVELDATA_H
|
||||||
|
#define LEVELDATA_H
|
||||||
|
|
||||||
|
#include <vector>
|
||||||
|
#include <QObject>
|
||||||
|
#include <QPoint>
|
||||||
|
|
||||||
|
class MainWindow;
|
||||||
|
|
||||||
|
struct TPoly
|
||||||
|
{
|
||||||
|
std::vector<QPoint> pointArr;
|
||||||
|
};
|
||||||
|
|
||||||
|
class LevelData : public QObject
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
std::vector<QPoint> tempPointArr;
|
||||||
|
std::vector<TPoly> PolyArr;
|
||||||
|
|
||||||
|
int selectedPoly;
|
||||||
|
int selectedPoint;
|
||||||
|
QPoint LastMouseDownPos;
|
||||||
|
|
||||||
|
MainWindow* mainWindow;
|
||||||
|
|
||||||
|
explicit LevelData(QObject *parent = 0);
|
||||||
|
|
||||||
|
~LevelData();
|
||||||
|
|
||||||
|
void RefreshPixmap();
|
||||||
|
void ResetSelected();
|
||||||
|
void ResetTempPoints();
|
||||||
|
|
||||||
|
void Clear();
|
||||||
|
|
||||||
|
public slots:
|
||||||
|
void OnSelectPoint(int x, int y);
|
||||||
|
void OnMovePoint(int x, int y);
|
||||||
|
|
||||||
|
void OnAddPoint(int x, int y);
|
||||||
|
void OnApplyPointList(int x, int y);
|
||||||
|
|
||||||
|
void OnMouseDown(int x, int y);
|
||||||
|
|
||||||
|
void DeleteLastTempPoint();
|
||||||
|
void DeleteSelectedPoint();
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // LEVELDATA_H
|
13
Black_okospace_levelcreator/main.cpp
Normal file
13
Black_okospace_levelcreator/main.cpp
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
#include <QtGui/QApplication>
|
||||||
|
#include "mainwindow.h"
|
||||||
|
|
||||||
|
int main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
QApplication a(argc, argv);
|
||||||
|
MainWindow w;
|
||||||
|
w.show();
|
||||||
|
|
||||||
|
w.InitSlots();
|
||||||
|
|
||||||
|
return a.exec();
|
||||||
|
}
|
166
Black_okospace_levelcreator/mainwindow.cpp
Normal file
166
Black_okospace_levelcreator/mainwindow.cpp
Normal file
@ -0,0 +1,166 @@
|
|||||||
|
#include "mainwindow.h"
|
||||||
|
#include "ui_mainwindow.h"
|
||||||
|
#include <QtGui>
|
||||||
|
|
||||||
|
MainWindow::MainWindow(QWidget *parent) :
|
||||||
|
QMainWindow(parent),
|
||||||
|
ui(new Ui::MainWindow)
|
||||||
|
{
|
||||||
|
ui->setupUi(this);
|
||||||
|
|
||||||
|
Pixmap = new QPixmap(960, 640);
|
||||||
|
levelData = new LevelData;
|
||||||
|
levelData->mainWindow = this;
|
||||||
|
|
||||||
|
CurrentMode = CM_ADD_POLYS;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
MainWindow::~MainWindow()
|
||||||
|
{
|
||||||
|
delete Pixmap;
|
||||||
|
delete levelData;
|
||||||
|
delete ui;
|
||||||
|
}
|
||||||
|
|
||||||
|
void MainWindow::InitSlots()
|
||||||
|
{
|
||||||
|
|
||||||
|
QObject::connect(ui->LoadBackgroundButton, SIGNAL(pressed()), this, SLOT(LoadBackgroundSlot()));
|
||||||
|
QObject::connect(ui->radioButtonAddPolys, SIGNAL(pressed()), this, SLOT(RadioButtonAddPolysSelected()));
|
||||||
|
QObject::connect(ui->radioButtonModifyPolys, SIGNAL(pressed()), this, SLOT(RadioButtonModifyPolysSelected()));
|
||||||
|
QObject::connect(ui->Image, SIGNAL(buttonPressed(int, int)), levelData, SLOT(OnMouseDown(int, int)));
|
||||||
|
|
||||||
|
QObject::connect(ui->SaveLevelButton, SIGNAL(pressed()), this, SLOT(OnSaveButtonPressed()));
|
||||||
|
QObject::connect(ui->LoadLevelButton, SIGNAL(pressed()), this, SLOT(OnLoadButtonPressed()));
|
||||||
|
|
||||||
|
InitSlotsForAddPolys();
|
||||||
|
}
|
||||||
|
|
||||||
|
void MainWindow::InitSlotsForAddPolys()
|
||||||
|
{
|
||||||
|
QObject::disconnect(ui->Image, SIGNAL(leftButtonReleased(int, int)), levelData, SLOT(OnSelectPoint(int, int)));
|
||||||
|
QObject::disconnect(ui->Image, SIGNAL(mouseMoveWithRightButtonPressed(int, int)), levelData, SLOT(OnMovePoint(int, int)));
|
||||||
|
QObject::disconnect(this, SIGNAL(deleteButtonPressed()), levelData, SLOT(DeleteSelectedPoint()));
|
||||||
|
|
||||||
|
|
||||||
|
QObject::connect(ui->Image, SIGNAL(leftButtonReleased(int, int)), levelData, SLOT(OnAddPoint(int, int)));
|
||||||
|
QObject::connect(ui->Image, SIGNAL(rightButtonReleased(int, int)), levelData, SLOT(OnApplyPointList(int, int)));
|
||||||
|
QObject::connect(this, SIGNAL(deleteButtonPressed()), levelData, SLOT(DeleteLastTempPoint()));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void MainWindow::InitSlotsForModifyPolys()
|
||||||
|
{
|
||||||
|
QObject::disconnect(ui->Image, SIGNAL(leftButtonReleased(int, int)), levelData, SLOT(OnAddPoint(int, int)));
|
||||||
|
QObject::disconnect(ui->Image, SIGNAL(rightButtonReleased(int, int)), levelData, SLOT(OnApplyPointList(int, int)));
|
||||||
|
QObject::disconnect(this, SIGNAL(deleteButtonPressed()), levelData, SLOT(DeleteLastTempPoint()));
|
||||||
|
|
||||||
|
QObject::connect(ui->Image, SIGNAL(leftButtonReleased(int, int)), levelData, SLOT(OnSelectPoint(int, int)));
|
||||||
|
QObject::connect(ui->Image, SIGNAL(mouseMoveWithRightButtonPressed(int, int)), levelData, SLOT(OnMovePoint(int, int)));
|
||||||
|
QObject::connect(this, SIGNAL(deleteButtonPressed()), levelData, SLOT(DeleteSelectedPoint()));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void MainWindow::LoadBackgroundSlot()
|
||||||
|
{
|
||||||
|
QFileDialog dialog(this);
|
||||||
|
|
||||||
|
dialog.setNameFilter(tr("PNG (*.png)"));
|
||||||
|
|
||||||
|
dialog.setFileMode(QFileDialog::ExistingFile);
|
||||||
|
|
||||||
|
if (dialog.exec())
|
||||||
|
{
|
||||||
|
QString filename = (dialog.selectedFiles())[0];
|
||||||
|
bkgImage = QImage(filename);
|
||||||
|
|
||||||
|
levelData->RefreshPixmap();
|
||||||
|
//ui->Image->setPixmap(*Pixmap);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void MainWindow::RadioButtonAddPolysSelected()
|
||||||
|
{
|
||||||
|
CurrentMode = CM_ADD_POLYS;
|
||||||
|
InitSlotsForAddPolys();
|
||||||
|
levelData->ResetSelected();
|
||||||
|
levelData->RefreshPixmap();
|
||||||
|
}
|
||||||
|
|
||||||
|
void MainWindow::RadioButtonModifyPolysSelected()
|
||||||
|
{
|
||||||
|
CurrentMode = CM_MODIFY_POLYS;
|
||||||
|
InitSlotsForModifyPolys();
|
||||||
|
levelData->ResetTempPoints();
|
||||||
|
levelData->RefreshPixmap();
|
||||||
|
}
|
||||||
|
|
||||||
|
void MainWindow::OnSaveButtonPressed()
|
||||||
|
{
|
||||||
|
QFileDialog dialog(this);
|
||||||
|
|
||||||
|
dialog.setNameFilter(tr("xml (*.xml)"));
|
||||||
|
|
||||||
|
dialog.setFileMode(QFileDialog::AnyFile);
|
||||||
|
|
||||||
|
if (dialog.exec())
|
||||||
|
{
|
||||||
|
QString filename = (dialog.selectedFiles())[0];
|
||||||
|
|
||||||
|
QString xmlOut;
|
||||||
|
|
||||||
|
QXmlStreamWriter stream(&xmlOut);
|
||||||
|
stream.setAutoFormatting(true);
|
||||||
|
stream.writeStartDocument();
|
||||||
|
|
||||||
|
stream.writeStartElement("LevelPolyArr");
|
||||||
|
|
||||||
|
for (size_t i = 0; i < levelData->PolyArr.size(); i++)
|
||||||
|
{
|
||||||
|
stream.writeStartElement("LevelPoly");
|
||||||
|
|
||||||
|
for (size_t j = 0; j < levelData->PolyArr[i].pointArr.size(); j++)
|
||||||
|
{
|
||||||
|
stream.writeStartElement("Point");
|
||||||
|
stream.writeAttribute("x", QString::number(levelData->PolyArr[i].pointArr[j].x()));
|
||||||
|
stream.writeAttribute("y", QString::number(levelData->PolyArr[i].pointArr[j].y()));
|
||||||
|
stream.writeEndElement();
|
||||||
|
}
|
||||||
|
|
||||||
|
stream.writeEndElement();
|
||||||
|
}
|
||||||
|
|
||||||
|
stream.writeEndElement();
|
||||||
|
|
||||||
|
stream.writeEndDocument();
|
||||||
|
|
||||||
|
QFile file(filename);
|
||||||
|
if (!file.open(QIODevice::WriteOnly | QIODevice::Text))
|
||||||
|
return;
|
||||||
|
|
||||||
|
QTextStream out(&file);
|
||||||
|
out << xmlOut;
|
||||||
|
|
||||||
|
file.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void MainWindow::OnLoadButtonPressed()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void MainWindow::SetImagePixmap(QPixmap* p)
|
||||||
|
{
|
||||||
|
ui->Image->setPixmap(*p);
|
||||||
|
}
|
||||||
|
|
||||||
|
void MainWindow::keyReleaseEvent(QKeyEvent * qev)
|
||||||
|
{
|
||||||
|
if (qev->key() == Qt::Key_Delete)
|
||||||
|
{
|
||||||
|
emit deleteButtonPressed();
|
||||||
|
}
|
||||||
|
}
|
56
Black_okospace_levelcreator/mainwindow.h
Normal file
56
Black_okospace_levelcreator/mainwindow.h
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
#ifndef MAINWINDOW_H
|
||||||
|
#define MAINWINDOW_H
|
||||||
|
|
||||||
|
#include <QMainWindow>
|
||||||
|
#include "leveldata.h"
|
||||||
|
|
||||||
|
namespace Ui {
|
||||||
|
class MainWindow;
|
||||||
|
}
|
||||||
|
|
||||||
|
enum TCurrentMode
|
||||||
|
{
|
||||||
|
CM_ADD_POLYS,
|
||||||
|
CM_MODIFY_POLYS,
|
||||||
|
};
|
||||||
|
|
||||||
|
class MainWindow : public QMainWindow
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
TCurrentMode CurrentMode;
|
||||||
|
|
||||||
|
QPixmap* Pixmap;
|
||||||
|
QImage bkgImage;
|
||||||
|
|
||||||
|
LevelData* levelData;
|
||||||
|
|
||||||
|
explicit MainWindow(QWidget *parent = 0);
|
||||||
|
~MainWindow();
|
||||||
|
|
||||||
|
|
||||||
|
void InitSlots();
|
||||||
|
void InitSlotsForAddPolys();
|
||||||
|
void InitSlotsForModifyPolys();
|
||||||
|
|
||||||
|
void SetImagePixmap(QPixmap* p);
|
||||||
|
|
||||||
|
signals:
|
||||||
|
void deleteButtonPressed();
|
||||||
|
|
||||||
|
public slots:
|
||||||
|
void LoadBackgroundSlot();
|
||||||
|
void RadioButtonAddPolysSelected();
|
||||||
|
void RadioButtonModifyPolysSelected();
|
||||||
|
|
||||||
|
void OnSaveButtonPressed();
|
||||||
|
void OnLoadButtonPressed();
|
||||||
|
|
||||||
|
private:
|
||||||
|
Ui::MainWindow *ui;
|
||||||
|
protected:
|
||||||
|
void keyReleaseEvent(QKeyEvent* event);
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // MAINWINDOW_H
|
254
Black_okospace_levelcreator/mainwindow.ui
Normal file
254
Black_okospace_levelcreator/mainwindow.ui
Normal file
@ -0,0 +1,254 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ui version="4.0">
|
||||||
|
<class>MainWindow</class>
|
||||||
|
<widget class="QMainWindow" name="MainWindow">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>720</width>
|
||||||
|
<height>453</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="windowTitle">
|
||||||
|
<string>MainWindow</string>
|
||||||
|
</property>
|
||||||
|
<widget class="QWidget" name="centralWidget">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Maximum" vsizetype="Maximum">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>0</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="layoutDirection">
|
||||||
|
<enum>Qt::LeftToRight</enum>
|
||||||
|
</property>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||||
|
<property name="spacing">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="sizeConstraint">
|
||||||
|
<enum>QLayout::SetMinAndMaxSize</enum>
|
||||||
|
</property>
|
||||||
|
<property name="margin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<widget class="QFrame" name="frame">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Minimum" vsizetype="Expanding">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>150</width>
|
||||||
|
<height>400</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>150</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="frameShape">
|
||||||
|
<enum>QFrame::StyledPanel</enum>
|
||||||
|
</property>
|
||||||
|
<property name="frameShadow">
|
||||||
|
<enum>QFrame::Raised</enum>
|
||||||
|
</property>
|
||||||
|
<widget class="QRadioButton" name="radioButtonModifyPolys">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>10</x>
|
||||||
|
<y>62</y>
|
||||||
|
<width>83</width>
|
||||||
|
<height>17</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Modify polys</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QRadioButton" name="radioButtonAddPolys">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>10</x>
|
||||||
|
<y>39</y>
|
||||||
|
<width>70</width>
|
||||||
|
<height>17</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Add polys</string>
|
||||||
|
</property>
|
||||||
|
<property name="checked">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QPushButton" name="LoadBackgroundButton">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>10</x>
|
||||||
|
<y>10</y>
|
||||||
|
<width>131</width>
|
||||||
|
<height>23</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Load background</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QPushButton" name="SaveLevelButton">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>10</x>
|
||||||
|
<y>100</y>
|
||||||
|
<width>131</width>
|
||||||
|
<height>23</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Save level</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QPushButton" name="LoadLevelButton">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>10</x>
|
||||||
|
<y>130</y>
|
||||||
|
<width>131</width>
|
||||||
|
<height>23</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Load level</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="verticalSpacer">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Vertical</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeType">
|
||||||
|
<enum>QSizePolicy::Minimum</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>20</width>
|
||||||
|
<height>40</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QScrollArea" name="scrollArea">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>0</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="verticalScrollBarPolicy">
|
||||||
|
<enum>Qt::ScrollBarAlwaysOn</enum>
|
||||||
|
</property>
|
||||||
|
<property name="horizontalScrollBarPolicy">
|
||||||
|
<enum>Qt::ScrollBarAlwaysOn</enum>
|
||||||
|
</property>
|
||||||
|
<property name="widgetResizable">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignJustify|Qt::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
<widget class="QWidget" name="scrollAreaWidgetContents">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>978</width>
|
||||||
|
<height>658</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Maximum" vsizetype="Maximum">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout">
|
||||||
|
<item>
|
||||||
|
<widget class="CustomLabel" name="Image">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Maximum" vsizetype="Maximum">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>960</width>
|
||||||
|
<height>640</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="frameShape">
|
||||||
|
<enum>QFrame::Box</enum>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<widget class="QMenuBar" name="menuBar">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>720</width>
|
||||||
|
<height>21</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QToolBar" name="mainToolBar">
|
||||||
|
<attribute name="toolBarArea">
|
||||||
|
<enum>TopToolBarArea</enum>
|
||||||
|
</attribute>
|
||||||
|
<attribute name="toolBarBreak">
|
||||||
|
<bool>false</bool>
|
||||||
|
</attribute>
|
||||||
|
</widget>
|
||||||
|
<widget class="QStatusBar" name="statusBar"/>
|
||||||
|
</widget>
|
||||||
|
<layoutdefault spacing="6" margin="11"/>
|
||||||
|
<customwidgets>
|
||||||
|
<customwidget>
|
||||||
|
<class>CustomLabel</class>
|
||||||
|
<extends>QLabel</extends>
|
||||||
|
<header>customlabel.h</header>
|
||||||
|
</customwidget>
|
||||||
|
</customwidgets>
|
||||||
|
<resources/>
|
||||||
|
<connections/>
|
||||||
|
</ui>
|
Loading…
Reference in New Issue
Block a user