/
mainwindow.cpp
executable file
·120 lines (100 loc) · 2.74 KB
/
mainwindow.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QFileDialog>
#include "openmapdialog.h"
MainWindow* MainWindow::instance = 0;
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
instance = this;
ui->setupUi(this);
map = 0;
//
QFont statusFont = font();
statusFont.setBold(true);
QFontMetrics statusFontMetrics(statusFont);
statusStatus = new QLabel(this);
statusStatus->setContentsMargins(4, 2, 4, 2);
statusStatus->setFont(statusFont);
statusScale = new QLabel(this);
statusScale->setContentsMargins(4, 2, 4, 2);
statusScale->setAlignment(Qt::AlignCenter);
statusScale->setFont(statusFont);
statusScale->setFixedWidth(statusFontMetrics.width("9000%")+32);
statusMouseXY = new QLabel(this);
statusMouseXY->setContentsMargins(4, 2, 4, 2);
statusMouseXY->setAlignment(Qt::AlignCenter);
statusMouseXY->setFont(statusFont);
statusMouseXY->setFixedWidth(statusFontMetrics.width("99999 , 99999")+64);
statusBar()->addWidget(statusStatus, 1);
statusBar()->addWidget(statusScale);
statusBar()->addWidget(statusMouseXY);
statusStatus->setText("Started.");
resetScale();
resetMouseXY();
}
MainWindow::~MainWindow()
{
if (map) delete map;
map = 0;
delete ui;
ui = 0;
instance = 0;
}
void MainWindow::on_actionNew_triggered()
{
}
void MainWindow::on_actionOpen_triggered()
{
// input: WAD file
QString fileName = QFileDialog::getOpenFileName(this, "Open Map", "", "WAD Files (*.wad)");
if (fileName.isEmpty())
return;
OpenMapDialog* mapsdlg = new OpenMapDialog(this);
mapsdlg->fromWAD(fileName);
}
void MainWindow::setMap(DoomMap* nmap)
{
if (map != nmap && map)
delete map;
map = nmap;
// process stuff
ui->view2d->initMap();
ui->view3d->initMap();
}
void MainWindow::resetScale()
{
//statusScale->setText("--");
setScale(1);
}
void MainWindow::setScale(float scale)
{
int scale100 = scale*100;
if (scale100 < 1) scale100 = 1;
statusScale->setText(QString::number(scale100)+"%");
}
void MainWindow::resetMouseXY()
{
statusMouseXY->setText("-- , --");
}
void MainWindow::setMouseXY(float x, float y)
{
statusMouseXY->setText(QString::number((int)x)+" , "+QString::number((int)y));
}
void MainWindow::set3DMode(bool is3d)
{
ui->modeStack->setCurrentWidget(is3d?ui->page3d:ui->page2d);
}
QGLWidget* MainWindow::getSharedGLWidget()
{
return (QGLWidget*)ui->view2d;
}
float MainWindow::getMouseX()
{
return ui->view2d->getMouseX();
}
float MainWindow::getMouseY()
{
return ui->view2d->getMouseY();
}