resize region map, move map squares

This commit is contained in:
garak
2019-01-13 19:27:28 -05:00
parent 83f3cef52e
commit c75ce5db1d
7 changed files with 358 additions and 403 deletions

View File

@@ -24,32 +24,11 @@ public:
explicit RegionMapEditor(QWidget *parent = 0, Project *pro = nullptr);
~RegionMapEditor();
// TODO: make members that are not called outside of this private
RegionMap *region_map;
QGraphicsScene *scene_region_map_image = nullptr;
QGraphicsScene *scene_city_map_image = nullptr;
QGraphicsScene *scene_region_map_layout = nullptr;
QGraphicsScene *scene_region_map_tiles = nullptr;
QGraphicsScene *scene_city_map_tiles = nullptr;
TilemapTileSelector *mapsquare_selector_item = nullptr;
TilemapTileSelector *city_map_selector_item = nullptr;
RegionMapPixmapItem *region_map_item = nullptr;
CityMapPixmapItem *city_map_item = nullptr;
RegionMapLayoutPixmapItem *region_map_layout_item = nullptr;
void loadRegionMapData();
void displayRegionMap();
void displayRegionMapImage();
void displayRegionMapLayout();
void displayRegionMapLayoutOptions();
void updateRegionMapLayoutOptions(int);
void displayRegionMapTileSelector();
void displayCityMapTileSelector();
void displayCityMap(QString);
void loadCityMaps();
void onRegionMapTileSelectorSelectedTileChanged();
void onRegionMapTileSelectorHoveredTileChanged(unsigned);
void onRegionMapTileSelectorHoveredTileCleared();
@@ -60,14 +39,17 @@ public:
void undo();
void redo();
void resize(int, int);
private:
Ui::RegionMapEditor *ui;
Project *project;
QString rmStatusbarMessage;
History<RegionMapHistoryItem*> history;
double scaleUpFactor = 2.0;
int currIndex = 65;// TODO: automatic this from width * 2 + 1
double scaleUpFactor = 2.0;// TODO
double scaleDownFactor = 1.0 / scaleUpFactor;
double scaleRegionMapTiles = 1.0;
@@ -75,7 +57,27 @@ private:
double scaleCityMapTiles = 1.0;
double scaleCityMapImage = 1.0;
void scaleUp(QGraphicsView *, qreal factor, qreal width, qreal height);
QGraphicsScene *scene_region_map_image = nullptr;
QGraphicsScene *scene_city_map_image = nullptr;
QGraphicsScene *scene_region_map_layout = nullptr;
QGraphicsScene *scene_region_map_tiles = nullptr;
QGraphicsScene *scene_city_map_tiles = nullptr;
TilemapTileSelector *mapsquare_selector_item = nullptr;
TilemapTileSelector *city_map_selector_item = nullptr;
RegionMapLayoutPixmapItem *region_map_layout_item = nullptr;
RegionMapPixmapItem *region_map_item = nullptr;
CityMapPixmapItem *city_map_item = nullptr;
void displayRegionMap();
void displayRegionMapImage();
void displayRegionMapLayout();
void displayRegionMapLayoutOptions();
void updateRegionMapLayoutOptions(int);
void displayRegionMapTileSelector();
void displayCityMapTileSelector();
void displayCityMap(QString);
bool createCityMap(QString);
@@ -83,20 +85,23 @@ private slots:
void on_action_RegionMap_Save_triggered();
void on_action_RegionMap_Undo_triggered();
void on_action_RegionMap_Redo_triggered();
void on_action_RegionMap_Resize_triggered();
void on_tabWidget_Region_Map_currentChanged(int);
void on_pushButton_RM_Options_save_clicked();
void on_pushButton_RM_Options_delete_clicked();
void on_pushButton_CityMap_save_clicked();
void on_pushButton_CityMap_add_clicked();//
void on_pushButton_CityMap_add_clicked();
void on_pushButton_Zoom_In_Image_Tiles_clicked();
void on_pushButton_Zoom_Out_Image_Tiles_clicked();
void on_pushButton_Zoom_In_City_Tiles_clicked();
void on_pushButton_Zoom_Out_City_Tiles_clicked();
void on_pushButton_Zoom_In_City_Map_clicked();//
void on_pushButton_Zoom_In_City_Map_clicked();
void on_pushButton_Zoom_Out_City_Map_clicked();
void on_pushButton_Zoom_In_Map_Image_clicked();
void on_pushButton_Zoom_Out_Map_Image_clicked();//
void on_pushButton_Zoom_Out_Map_Image_clicked();
void on_comboBox_CityMap_picker_currentTextChanged(const QString &);
void on_spinBox_RM_Options_x_valueChanged(int);
void on_spinBox_RM_Options_y_valueChanged(int);
void onHoveredRegionMapTileChanged(int, int);
void onHoveredRegionMapTileCleared();
void mouseEvent_region_map(QGraphicsSceneMouseEvent *, RegionMapPixmapItem *);

View File

@@ -8,22 +8,22 @@ class RegionMapLayoutPixmapItem : public SelectablePixmapItem {
Q_OBJECT
public:
RegionMapLayoutPixmapItem(RegionMap *rmap, TilemapTileSelector *ts) : SelectablePixmapItem(8, 8, 1, 1) {
//
this->region_map = rmap;
this->tile_selector = ts;
setAcceptHoverEvents(true);
}
RegionMap *region_map;// inherited from RegionMapPixmapItem?
RegionMap *region_map;
TilemapTileSelector *tile_selector;
int selectedTile;// index in map_squares
int selectedTile;
int highlightedTile;
void draw();
void select(int, int);
void setDefaultSelection();
void select(int);
void highlight(int, int, int);
private:
void updateSelectedTile();
// can I implement these if they are virtual?
signals:
void mouseEvent(QGraphicsSceneMouseEvent *, RegionMapLayoutPixmapItem *);
void hoveredTileChanged(int);