aboutsummaryrefslogtreecommitdiff
path: root/Source/MapEditor/mainwindow.h
blob: 97e39ef4f397226d8c53ded4e84ee43b11a06a6d (plain) (blame)
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
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QFileDialog>
#include <QSettings>
#include <QDebug>
#include <QPixmap>
#include <QShortcut>

#include "mygraphicsscene.h"
#include "ui_mainwindow.h"

#define APP_NAME                    QString("Airport Map Editor")
#define APP_VERSION_STRING          QString("0.3")
#define APP_FULL_NAME               APP_NAME + " " + APP_VERSION_STRING

#define TILE_SIZE           (64)
#define DATA_HEADER_SIZE    (0x3F)
#define TILE_MIRROR_FLAG    (0x80)

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = nullptr);
    ~MainWindow();
    void closeEvent(QCloseEvent*);

private:
    bool checkFile(QFile &f, QFile::OpenModeFlag flags = QFile::ReadOnly);
    void appSettings(void);
    void loadTilesetData(void);
    void loadBuildingData(void);
    void parseMapData(QDataStream &ds, const QPixmap &tileSet, const QPixmap &tileSet2);

    Ui::MainWindow ui;
    QString _last_dir;
    MyGraphicsScene gscene;
    int level_size;
    QByteArray map_buffer;
    int selected_item;
    QHash<int, QString> tilesetData;
    QList<QGraphicsTextItem*> textItems;
    QShortcut tileSet;
    QShortcut tileMoveUp;
    QString tilesetPaths[2];

private slots:
    void loadMap(void);
    void onCreateMap(void);
    void processMapFile(const QByteArray &);
    void onMapItemClicked(QPointF);
    void onNoItemSelected(void);
    void onListItemSelected(void);
    void onSaveMap(void);
    void onShowNumbers(int);
    void onAirportNameModified(QString);
    void showError(const QString& error);
    void moveUp(void);
};

#endif // MAINWINDOW_H