add map section swap feature and smooth zooming
This commit is contained in:
parent
38cb97793d
commit
3cef77a174
7 changed files with 132 additions and 77 deletions
|
@ -61,7 +61,7 @@
|
||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>348</width>
|
<width>350</width>
|
||||||
<height>225</height>
|
<height>225</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
|
@ -182,7 +182,7 @@
|
||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>348</width>
|
<width>350</width>
|
||||||
<height>225</height>
|
<height>225</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
|
@ -651,7 +651,7 @@
|
||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>440</width>
|
<width>441</width>
|
||||||
<height>230</height>
|
<height>230</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
|
@ -787,7 +787,7 @@
|
||||||
<rect>
|
<rect>
|
||||||
<x>8</x>
|
<x>8</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>254</width>
|
<width>255</width>
|
||||||
<height>274</height>
|
<height>274</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
|
@ -906,16 +906,19 @@
|
||||||
<enum>Qt::StrongFocus</enum>
|
<enum>Qt::StrongFocus</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="minimum">
|
<property name="minimum">
|
||||||
<number>1</number>
|
<number>10</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="maximum">
|
<property name="maximum">
|
||||||
<number>4</number>
|
<number>100</number>
|
||||||
|
</property>
|
||||||
|
<property name="value">
|
||||||
|
<number>30</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Vertical</enum>
|
<enum>Qt::Vertical</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="tickPosition">
|
<property name="tickPosition">
|
||||||
<enum>QSlider::TicksAbove</enum>
|
<enum>QSlider::NoTicks</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="tickInterval">
|
<property name="tickInterval">
|
||||||
<number>1</number>
|
<number>1</number>
|
||||||
|
@ -953,16 +956,19 @@
|
||||||
<enum>Qt::StrongFocus</enum>
|
<enum>Qt::StrongFocus</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="minimum">
|
<property name="minimum">
|
||||||
<number>1</number>
|
<number>10</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="maximum">
|
<property name="maximum">
|
||||||
<number>4</number>
|
<number>100</number>
|
||||||
|
</property>
|
||||||
|
<property name="value">
|
||||||
|
<number>30</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Vertical</enum>
|
<enum>Qt::Vertical</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="tickPosition">
|
<property name="tickPosition">
|
||||||
<enum>QSlider::TicksAbove</enum>
|
<enum>QSlider::NoTicks</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="tickInterval">
|
<property name="tickInterval">
|
||||||
<number>1</number>
|
<number>1</number>
|
||||||
|
@ -991,16 +997,19 @@
|
||||||
<enum>Qt::StrongFocus</enum>
|
<enum>Qt::StrongFocus</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="minimum">
|
<property name="minimum">
|
||||||
<number>1</number>
|
<number>10</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="maximum">
|
<property name="maximum">
|
||||||
<number>4</number>
|
<number>100</number>
|
||||||
|
</property>
|
||||||
|
<property name="value">
|
||||||
|
<number>30</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Vertical</enum>
|
<enum>Qt::Vertical</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="tickPosition">
|
<property name="tickPosition">
|
||||||
<enum>QSlider::TicksBelow</enum>
|
<enum>QSlider::NoTicks</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="tickInterval">
|
<property name="tickInterval">
|
||||||
<number>1</number>
|
<number>1</number>
|
||||||
|
@ -1038,16 +1047,19 @@
|
||||||
<enum>Qt::StrongFocus</enum>
|
<enum>Qt::StrongFocus</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="minimum">
|
<property name="minimum">
|
||||||
<number>1</number>
|
<number>10</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="maximum">
|
<property name="maximum">
|
||||||
<number>4</number>
|
<number>100</number>
|
||||||
|
</property>
|
||||||
|
<property name="value">
|
||||||
|
<number>30</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Vertical</enum>
|
<enum>Qt::Vertical</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="tickPosition">
|
<property name="tickPosition">
|
||||||
<enum>QSlider::TicksBelow</enum>
|
<enum>QSlider::NoTicks</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="tickInterval">
|
<property name="tickInterval">
|
||||||
<number>1</number>
|
<number>1</number>
|
||||||
|
@ -1080,6 +1092,7 @@
|
||||||
<addaction name="action_RegionMap_Undo"/>
|
<addaction name="action_RegionMap_Undo"/>
|
||||||
<addaction name="action_RegionMap_Redo"/>
|
<addaction name="action_RegionMap_Redo"/>
|
||||||
<addaction name="action_RegionMap_Resize"/>
|
<addaction name="action_RegionMap_Resize"/>
|
||||||
|
<addaction name="action_Swap"/>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QMenu" name="menuTools">
|
<widget class="QMenu" name="menuTools">
|
||||||
<property name="title">
|
<property name="title">
|
||||||
|
@ -1129,6 +1142,11 @@
|
||||||
<string>Generate...</string>
|
<string>Generate...</string>
|
||||||
</property>
|
</property>
|
||||||
</action>
|
</action>
|
||||||
|
<action name="action_Swap">
|
||||||
|
<property name="text">
|
||||||
|
<string>Swap...</string>
|
||||||
|
</property>
|
||||||
|
</action>
|
||||||
</widget>
|
</widget>
|
||||||
<resources/>
|
<resources/>
|
||||||
<connections/>
|
<connections/>
|
||||||
|
|
|
@ -48,7 +48,7 @@ public:
|
||||||
|
|
||||||
~RegionMap() {};
|
~RegionMap() {};
|
||||||
|
|
||||||
Project *project;
|
Project *project = nullptr;
|
||||||
|
|
||||||
QVector<RegionMapSquare> map_squares;
|
QVector<RegionMapSquare> map_squares;
|
||||||
History<RegionMapHistoryItem*> history;
|
History<RegionMapHistoryItem*> history;
|
||||||
|
@ -70,6 +70,7 @@ public:
|
||||||
|
|
||||||
void resize(int width, int height);
|
void resize(int width, int height);
|
||||||
void resetSquare(int index);
|
void resetSquare(int index);
|
||||||
|
void replaceSectionId(unsigned oldId, unsigned newId);
|
||||||
|
|
||||||
int width();
|
int width();
|
||||||
int height();
|
int height();
|
||||||
|
|
|
@ -59,12 +59,7 @@ private:
|
||||||
bool regionMapFirstDraw = true;
|
bool regionMapFirstDraw = true;
|
||||||
|
|
||||||
double scaleUpFactor = 2.0;
|
double scaleUpFactor = 2.0;
|
||||||
double scaleDownFactor = 1.0 / scaleUpFactor;
|
double initialScale = 30.0;
|
||||||
|
|
||||||
int scaleRegionMapTiles = 1;
|
|
||||||
int scaleRegionMapImage = 1;
|
|
||||||
int scaleCityMapTiles = 1;
|
|
||||||
int scaleCityMapImage = 1;
|
|
||||||
|
|
||||||
QGraphicsScene *scene_region_map_image = nullptr;
|
QGraphicsScene *scene_region_map_image = nullptr;
|
||||||
QGraphicsScene *scene_city_map_image = nullptr;
|
QGraphicsScene *scene_city_map_image = nullptr;
|
||||||
|
@ -97,6 +92,7 @@ private slots:
|
||||||
void on_action_RegionMap_Undo_triggered();
|
void on_action_RegionMap_Undo_triggered();
|
||||||
void on_action_RegionMap_Redo_triggered();
|
void on_action_RegionMap_Redo_triggered();
|
||||||
void on_action_RegionMap_Resize_triggered();
|
void on_action_RegionMap_Resize_triggered();
|
||||||
|
void on_action_Swap_triggered();
|
||||||
void on_action_RegionMap_Generate_triggered();
|
void on_action_RegionMap_Generate_triggered();
|
||||||
void on_tabWidget_Region_Map_currentChanged(int);
|
void on_tabWidget_Region_Map_currentChanged(int);
|
||||||
void on_pushButton_RM_Options_delete_clicked();
|
void on_pushButton_RM_Options_delete_clicked();
|
||||||
|
|
|
@ -198,6 +198,19 @@ void RegionMap::resetSquare(int index) {
|
||||||
logInfo(QString("Reset map square at (%1, %2).").arg(this->map_squares[index].x).arg(this->map_squares[index].y));
|
logInfo(QString("Reset map square at (%1, %2).").arg(this->map_squares[index].x).arg(this->map_squares[index].y));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void RegionMap::replaceSectionId(unsigned oldId, unsigned newId) {
|
||||||
|
for (auto &square : map_squares) {
|
||||||
|
if (square.secid == oldId) {
|
||||||
|
square.has_map = false;
|
||||||
|
square.secid = newId;
|
||||||
|
QString secname = (*(project->regionMapSections))[newId];
|
||||||
|
if (secname != "MAPSEC_NONE") square.has_map = true;
|
||||||
|
square.mapsec = secname;
|
||||||
|
square.map_name = sMapNamesMap.value(mapSecToMapEntry.value(secname).name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void RegionMap::resize(int newWidth, int newHeight) {
|
void RegionMap::resize(int newWidth, int newHeight) {
|
||||||
QVector<RegionMapSquare> new_squares;
|
QVector<RegionMapSquare> new_squares;
|
||||||
|
|
||||||
|
|
|
@ -1980,9 +1980,7 @@ void MainWindow::on_horizontalSlider_MetatileZoom_valueChanged(int value) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::on_pushButton_RM_Options_save_clicked() {
|
void MainWindow::on_pushButton_RM_Options_save_clicked() {
|
||||||
//
|
|
||||||
this->editor->region_map->saveOptions(
|
this->editor->region_map->saveOptions(
|
||||||
//
|
|
||||||
this->editor->region_map_layout_item->selectedTile,
|
this->editor->region_map_layout_item->selectedTile,
|
||||||
this->ui->comboBox_RM_ConnectedMap->currentText(),
|
this->ui->comboBox_RM_ConnectedMap->currentText(),
|
||||||
this->ui->lineEdit_RM_MapName->text(),
|
this->ui->lineEdit_RM_MapName->text(),
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
#include <QColor>
|
#include <QColor>
|
||||||
#include <QMessageBox>
|
#include <QMessageBox>
|
||||||
#include <QDialogButtonBox>
|
#include <QDialogButtonBox>
|
||||||
|
#include <math.h>
|
||||||
|
|
||||||
RegionMapEditor::RegionMapEditor(QWidget *parent, Project *project_) :
|
RegionMapEditor::RegionMapEditor(QWidget *parent, Project *project_) :
|
||||||
QMainWindow(parent),
|
QMainWindow(parent),
|
||||||
|
@ -103,10 +104,9 @@ void RegionMapEditor::displayRegionMapImage() {
|
||||||
this->scene_region_map_image->setSceneRect(this->scene_region_map_image->itemsBoundingRect());
|
this->scene_region_map_image->setSceneRect(this->scene_region_map_image->itemsBoundingRect());
|
||||||
|
|
||||||
this->ui->graphicsView_Region_Map_BkgImg->setScene(this->scene_region_map_image);
|
this->ui->graphicsView_Region_Map_BkgImg->setScene(this->scene_region_map_image);
|
||||||
this->ui->graphicsView_Region_Map_BkgImg->setFixedSize(this->region_map->imgSize().width() * scaleRegionMapImage + 2,
|
|
||||||
this->region_map->imgSize().height() * scaleRegionMapImage + 2);
|
|
||||||
|
|
||||||
if (regionMapFirstDraw) {
|
if (regionMapFirstDraw) {
|
||||||
|
on_verticalSlider_Zoom_Map_Image_valueChanged(initialScale);
|
||||||
RegionMapHistoryItem *commit = new RegionMapHistoryItem(
|
RegionMapHistoryItem *commit = new RegionMapHistoryItem(
|
||||||
RegionMapEditorBox::BackgroundImage, this->region_map->getTiles(), this->region_map->width(), this->region_map->height()
|
RegionMapEditorBox::BackgroundImage, this->region_map->getTiles(), this->region_map->width(), this->region_map->height()
|
||||||
);
|
);
|
||||||
|
@ -140,8 +140,6 @@ void RegionMapEditor::displayRegionMapLayout() {
|
||||||
this->scene_region_map_layout->setSceneRect(this->scene_region_map_layout->itemsBoundingRect());
|
this->scene_region_map_layout->setSceneRect(this->scene_region_map_layout->itemsBoundingRect());
|
||||||
|
|
||||||
this->ui->graphicsView_Region_Map_Layout->setScene(this->scene_region_map_layout);
|
this->ui->graphicsView_Region_Map_Layout->setScene(this->scene_region_map_layout);
|
||||||
this->ui->graphicsView_Region_Map_Layout->setFixedSize(this->region_map->imgSize().width() * scaleRegionMapImage + 2,
|
|
||||||
this->region_map->imgSize().height() * scaleRegionMapImage + 2);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void RegionMapEditor::displayRegionMapLayoutOptions() {
|
void RegionMapEditor::displayRegionMapLayoutOptions() {
|
||||||
|
@ -199,8 +197,7 @@ void RegionMapEditor::displayRegionMapTileSelector() {
|
||||||
this, &RegionMapEditor::onRegionMapTileSelectorHoveredTileCleared);
|
this, &RegionMapEditor::onRegionMapTileSelectorHoveredTileCleared);
|
||||||
|
|
||||||
this->ui->graphicsView_RegionMap_Tiles->setScene(this->scene_region_map_tiles);
|
this->ui->graphicsView_RegionMap_Tiles->setScene(this->scene_region_map_tiles);
|
||||||
this->ui->graphicsView_RegionMap_Tiles->setFixedSize(this->mapsquare_selector_item->pixelWidth * scaleRegionMapTiles + 2,
|
on_verticalSlider_Zoom_Image_Tiles_valueChanged(initialScale);
|
||||||
this->mapsquare_selector_item->pixelHeight * scaleRegionMapTiles + 2);
|
|
||||||
|
|
||||||
this->mapsquare_selector_item->select(this->selectedImageTile);
|
this->mapsquare_selector_item->select(this->selectedImageTile);
|
||||||
}
|
}
|
||||||
|
@ -223,8 +220,7 @@ void RegionMapEditor::displayCityMapTileSelector() {
|
||||||
this, &RegionMapEditor::onCityMapTileSelectorSelectedTileChanged);
|
this, &RegionMapEditor::onCityMapTileSelectorSelectedTileChanged);
|
||||||
|
|
||||||
this->ui->graphicsView_City_Map_Tiles->setScene(this->scene_city_map_tiles);
|
this->ui->graphicsView_City_Map_Tiles->setScene(this->scene_city_map_tiles);
|
||||||
this->ui->graphicsView_City_Map_Tiles->setFixedSize(this->city_map_selector_item->pixelWidth * scaleCityMapTiles + 2,
|
on_verticalSlider_Zoom_City_Tiles_valueChanged(initialScale);
|
||||||
this->city_map_selector_item->pixelHeight * scaleCityMapTiles + 2);
|
|
||||||
|
|
||||||
this->city_map_selector_item->select(this->selectedCityTile);
|
this->city_map_selector_item->select(this->selectedCityTile);
|
||||||
}
|
}
|
||||||
|
@ -250,8 +246,7 @@ void RegionMapEditor::displayCityMap(QString f) {
|
||||||
scene_city_map_image->setSceneRect(this->scene_city_map_image->sceneRect());
|
scene_city_map_image->setSceneRect(this->scene_city_map_image->sceneRect());
|
||||||
|
|
||||||
this->ui->graphicsView_City_Map->setScene(scene_city_map_image);
|
this->ui->graphicsView_City_Map->setScene(scene_city_map_image);
|
||||||
this->ui->graphicsView_City_Map->setFixedSize(8 * city_map_item->width() * scaleCityMapImage + 2,
|
on_verticalSlider_Zoom_City_Map_valueChanged(initialScale);
|
||||||
8 * city_map_item->height() * scaleCityMapImage + 2);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool RegionMapEditor::createCityMap(QString name) {
|
bool RegionMapEditor::createCityMap(QString name) {
|
||||||
|
@ -564,6 +559,45 @@ void RegionMapEditor::resize(int w, int h) {
|
||||||
displayRegionMapLayoutOptions();
|
displayRegionMapLayoutOptions();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void RegionMapEditor::on_action_Swap_triggered() {
|
||||||
|
QDialog popup(this, Qt::WindowTitleHint | Qt::WindowCloseButtonHint);
|
||||||
|
popup.setWindowTitle("New City Map");
|
||||||
|
popup.setWindowModality(Qt::NonModal);
|
||||||
|
|
||||||
|
QFormLayout form(&popup);
|
||||||
|
|
||||||
|
QComboBox *oldSecBox = new QComboBox();
|
||||||
|
oldSecBox->addItems(*(this->project->regionMapSections));
|
||||||
|
form.addRow(new QLabel("Old Map Section:"), oldSecBox);
|
||||||
|
QComboBox *newSecBox = new QComboBox();
|
||||||
|
newSecBox->addItems(*(this->project->regionMapSections));
|
||||||
|
form.addRow(new QLabel("New Map Section:"), newSecBox);
|
||||||
|
|
||||||
|
QDialogButtonBox buttonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, Qt::Horizontal, &popup);
|
||||||
|
form.addRow(&buttonBox);
|
||||||
|
|
||||||
|
QString beforeSection, afterSection;
|
||||||
|
uint8_t oldId, newId;
|
||||||
|
connect(&buttonBox, SIGNAL(rejected()), &popup, SLOT(reject()));
|
||||||
|
connect(&buttonBox, &QDialogButtonBox::accepted, [this, &popup, &oldSecBox, &newSecBox,
|
||||||
|
&beforeSection, &afterSection, &oldId, &newId](){
|
||||||
|
beforeSection = oldSecBox->currentText();
|
||||||
|
afterSection = newSecBox->currentText();
|
||||||
|
if (!beforeSection.isEmpty() && !afterSection.isEmpty()) {
|
||||||
|
oldId = static_cast<uint8_t>(project->regionMapSections->indexOf(beforeSection));
|
||||||
|
newId = static_cast<uint8_t>(project->regionMapSections->indexOf(afterSection));
|
||||||
|
popup.accept();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if (popup.exec() == QDialog::Accepted) {
|
||||||
|
this->region_map->replaceSectionId(oldId, newId);
|
||||||
|
this->region_map_layout_item->draw();
|
||||||
|
this->region_map_layout_item->select(this->region_map_layout_item->selectedTile);
|
||||||
|
this->hasUnsavedChanges = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void RegionMapEditor::on_comboBox_CityMap_picker_currentTextChanged(const QString &file) {
|
void RegionMapEditor::on_comboBox_CityMap_picker_currentTextChanged(const QString &file) {
|
||||||
this->displayCityMap(file);
|
this->displayCityMap(file);
|
||||||
this->cityMapFirstDraw = true;
|
this->cityMapFirstDraw = true;
|
||||||
|
@ -593,64 +627,58 @@ void RegionMapEditor::closeEvent(QCloseEvent *event)
|
||||||
}
|
}
|
||||||
|
|
||||||
void RegionMapEditor::on_verticalSlider_Zoom_Map_Image_valueChanged(int val) {
|
void RegionMapEditor::on_verticalSlider_Zoom_Map_Image_valueChanged(int val) {
|
||||||
bool zoom_in = val > scaleRegionMapImage ? true : false;
|
double scale = pow(scaleUpFactor, static_cast<double>(val - initialScale) / initialScale);
|
||||||
scaleRegionMapImage = val;
|
|
||||||
|
|
||||||
this->ui->graphicsView_Region_Map_BkgImg->setFixedSize(this->region_map->imgSize().width() * pow(scaleUpFactor, scaleRegionMapImage - 1) + 2,
|
QMatrix matrix;
|
||||||
this->region_map->imgSize().height() * pow(scaleUpFactor, scaleRegionMapImage - 1) + 2);
|
matrix.scale(scale, scale);
|
||||||
this->ui->graphicsView_Region_Map_Layout->setFixedSize(this->region_map->imgSize().width() * pow(scaleUpFactor, scaleRegionMapImage - 1) + 2,
|
int width = ceil(static_cast<double>(this->region_map->imgSize().width()) * scale);
|
||||||
this->region_map->imgSize().height() * pow(scaleUpFactor, scaleRegionMapImage - 1) + 2);
|
int height = ceil(static_cast<double>(this->region_map->imgSize().height()) * scale);
|
||||||
|
|
||||||
if (zoom_in) {
|
ui->graphicsView_Region_Map_BkgImg->setResizeAnchor(QGraphicsView::NoAnchor);
|
||||||
this->ui->graphicsView_Region_Map_BkgImg->scale(scaleUpFactor, scaleUpFactor);
|
ui->graphicsView_Region_Map_BkgImg->setMatrix(matrix);
|
||||||
this->ui->graphicsView_Region_Map_Layout->scale(scaleUpFactor, scaleUpFactor);
|
ui->graphicsView_Region_Map_BkgImg->setFixedSize(width + 2, height + 2);
|
||||||
} else {
|
ui->graphicsView_Region_Map_Layout->setResizeAnchor(QGraphicsView::NoAnchor);
|
||||||
//
|
ui->graphicsView_Region_Map_Layout->setMatrix(matrix);
|
||||||
this->ui->graphicsView_Region_Map_BkgImg->scale(scaleDownFactor, scaleDownFactor);
|
ui->graphicsView_Region_Map_Layout->setFixedSize(width + 2, height + 2);
|
||||||
this->ui->graphicsView_Region_Map_Layout->scale(scaleDownFactor, scaleDownFactor);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void RegionMapEditor::on_verticalSlider_Zoom_Image_Tiles_valueChanged(int val) {
|
void RegionMapEditor::on_verticalSlider_Zoom_Image_Tiles_valueChanged(int val) {
|
||||||
bool zoom_in = val > scaleRegionMapTiles ? true : false;
|
double scale = pow(scaleUpFactor, static_cast<double>(val - initialScale) / initialScale);
|
||||||
scaleRegionMapTiles = val;
|
|
||||||
|
|
||||||
this->ui->graphicsView_RegionMap_Tiles->setFixedSize(this->mapsquare_selector_item->pixelWidth * pow(scaleUpFactor, scaleRegionMapTiles - 1) + 2,
|
QMatrix matrix;
|
||||||
this->mapsquare_selector_item->pixelHeight * pow(scaleUpFactor, scaleRegionMapTiles - 1) + 2);
|
matrix.scale(scale, scale);
|
||||||
|
int width = ceil(static_cast<double>(this->mapsquare_selector_item->pixelWidth) * scale);
|
||||||
if (zoom_in) {
|
int height = ceil(static_cast<double>(this->mapsquare_selector_item->pixelHeight) * scale);
|
||||||
this->ui->graphicsView_RegionMap_Tiles->scale(scaleUpFactor, scaleUpFactor);
|
|
||||||
} else {
|
ui->graphicsView_RegionMap_Tiles->setResizeAnchor(QGraphicsView::NoAnchor);
|
||||||
this->ui->graphicsView_RegionMap_Tiles->scale(scaleDownFactor, scaleDownFactor);
|
ui->graphicsView_RegionMap_Tiles->setMatrix(matrix);
|
||||||
}
|
ui->graphicsView_RegionMap_Tiles->setFixedSize(width + 2, height + 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
void RegionMapEditor::on_verticalSlider_Zoom_City_Map_valueChanged(int val) {
|
void RegionMapEditor::on_verticalSlider_Zoom_City_Map_valueChanged(int val) {
|
||||||
bool zoom_in = val > scaleCityMapImage ? true : false;
|
double scale = pow(scaleUpFactor, static_cast<double>(val - initialScale) / initialScale);
|
||||||
scaleCityMapImage = val;
|
|
||||||
|
|
||||||
this->ui->graphicsView_City_Map->setFixedSize(8 * city_map_item->width() * pow(scaleUpFactor, scaleCityMapImage - 1) + 2,
|
QMatrix matrix;
|
||||||
8 * city_map_item->height() * pow(scaleUpFactor, scaleCityMapImage - 1) + 2);
|
matrix.scale(scale, scale);
|
||||||
|
int width = ceil(static_cast<double>(8 * city_map_item->width()) * scale);
|
||||||
|
int height = ceil(static_cast<double>(8 * city_map_item->height()) * scale);
|
||||||
|
|
||||||
if (zoom_in) {
|
ui->graphicsView_City_Map->setResizeAnchor(QGraphicsView::NoAnchor);
|
||||||
this->ui->graphicsView_City_Map->scale(scaleUpFactor, scaleUpFactor);
|
ui->graphicsView_City_Map->setMatrix(matrix);
|
||||||
} else {
|
ui->graphicsView_City_Map->setFixedSize(width + 2, height + 2);
|
||||||
this->ui->graphicsView_City_Map->scale(scaleDownFactor, scaleDownFactor);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void RegionMapEditor::on_verticalSlider_Zoom_City_Tiles_valueChanged(int val) {
|
void RegionMapEditor::on_verticalSlider_Zoom_City_Tiles_valueChanged(int val) {
|
||||||
bool zoom_in = val > scaleCityMapTiles ? true : false;
|
double scale = pow(scaleUpFactor, static_cast<double>(val - initialScale) / initialScale);
|
||||||
scaleCityMapTiles = val;
|
|
||||||
|
|
||||||
this->ui->graphicsView_City_Map_Tiles->setFixedSize(this->city_map_selector_item->pixelWidth * pow(scaleUpFactor, scaleCityMapTiles - 1) + 2,
|
QMatrix matrix;
|
||||||
this->city_map_selector_item->pixelHeight * pow(scaleUpFactor, scaleCityMapTiles - 1) + 2);
|
matrix.scale(scale, scale);
|
||||||
|
int width = ceil(static_cast<double>(this->city_map_selector_item->pixelWidth) * scale);
|
||||||
|
int height = ceil(static_cast<double>(this->city_map_selector_item->pixelHeight) * scale);
|
||||||
|
|
||||||
if (zoom_in) {
|
ui->graphicsView_City_Map_Tiles->setResizeAnchor(QGraphicsView::NoAnchor);
|
||||||
this->ui->graphicsView_City_Map_Tiles->scale(scaleUpFactor, scaleUpFactor);
|
ui->graphicsView_City_Map_Tiles->setMatrix(matrix);
|
||||||
} else {
|
ui->graphicsView_City_Map_Tiles->setFixedSize(width + 2, height + 2);
|
||||||
this->ui->graphicsView_City_Map_Tiles->scale(scaleDownFactor, scaleDownFactor);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void RegionMapEditor::on_action_RegionMap_Generate_triggered() {
|
void RegionMapEditor::on_action_RegionMap_Generate_triggered() {
|
||||||
|
|
|
@ -12,6 +12,7 @@ void TilemapTileSelector::draw() {
|
||||||
this->numTilesWide = width_ / 8;
|
this->numTilesWide = width_ / 8;
|
||||||
this->numTiles = ntiles_;
|
this->numTiles = ntiles_;
|
||||||
|
|
||||||
|
this->setPixmap(tilemap);
|
||||||
this->drawSelection();
|
this->drawSelection();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue