fix scene scaling for metatile selection, replace deprecated setMatrix with setTransform
This commit is contained in:
parent
62e86b3c94
commit
2e077b45c7
3 changed files with 20 additions and 18 deletions
|
@ -125,7 +125,7 @@ public:
|
|||
MetatileSelector *metatile_selector_item = nullptr;
|
||||
|
||||
BorderMetatilesPixmapItem *selected_border_metatiles_item = nullptr;
|
||||
CurrentSelectedMetatilesPixmapItem *scene_current_metatile_selection_item = nullptr;
|
||||
CurrentSelectedMetatilesPixmapItem *current_metatile_selection_item = nullptr;
|
||||
MovementPermissionsSelector *movement_permissions_selector_item = nullptr;
|
||||
|
||||
QList<DraggablePixmapItem*> *events = nullptr;
|
||||
|
|
|
@ -1286,20 +1286,20 @@ void Editor::displayBorderMetatiles() {
|
|||
}
|
||||
|
||||
void Editor::displayCurrentMetatilesSelection() {
|
||||
if (scene_current_metatile_selection_item && scene_current_metatile_selection_item->scene()) {
|
||||
scene_current_metatile_selection_item->scene()->removeItem(scene_current_metatile_selection_item);
|
||||
delete scene_current_metatile_selection_item;
|
||||
if (current_metatile_selection_item && current_metatile_selection_item->scene()) {
|
||||
current_metatile_selection_item->scene()->removeItem(current_metatile_selection_item);
|
||||
delete current_metatile_selection_item;
|
||||
}
|
||||
|
||||
scene_current_metatile_selection = new QGraphicsScene;
|
||||
scene_current_metatile_selection_item = new CurrentSelectedMetatilesPixmapItem(map, this->metatile_selector_item);
|
||||
scene_current_metatile_selection_item->draw();
|
||||
scene_current_metatile_selection->addItem(scene_current_metatile_selection_item);
|
||||
current_metatile_selection_item = new CurrentSelectedMetatilesPixmapItem(map, this->metatile_selector_item);
|
||||
current_metatile_selection_item->draw();
|
||||
scene_current_metatile_selection->addItem(current_metatile_selection_item);
|
||||
}
|
||||
|
||||
void Editor::redrawCurrentMetatilesSelection() {
|
||||
if (scene_current_metatile_selection_item) {
|
||||
scene_current_metatile_selection_item->draw();
|
||||
if (current_metatile_selection_item) {
|
||||
current_metatile_selection_item->draw();
|
||||
emit currentMetatilesSelectionChanged();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
#include <QProcess>
|
||||
#include <QSysInfo>
|
||||
#include <QDesktopServices>
|
||||
#include <QMatrix>
|
||||
#include <QTransform>
|
||||
#include <QSignalBlocker>
|
||||
#include <QSet>
|
||||
|
||||
|
@ -541,7 +541,7 @@ void MainWindow::refreshMapScene()
|
|||
ui->graphicsView_BorderMetatile->setFixedSize(editor->selected_border_metatiles_item->pixmap().width() + 2, editor->selected_border_metatiles_item->pixmap().height() + 2);
|
||||
|
||||
ui->graphicsView_currentMetatileSelection->setScene(editor->scene_current_metatile_selection);
|
||||
ui->graphicsView_currentMetatileSelection->setFixedSize(editor->scene_current_metatile_selection_item->pixmap().width() + 2, editor->scene_current_metatile_selection_item->pixmap().height() + 2);
|
||||
ui->graphicsView_currentMetatileSelection->setFixedSize(editor->current_metatile_selection_item->pixmap().width() + 2, editor->current_metatile_selection_item->pixmap().height() + 2);
|
||||
|
||||
ui->graphicsView_Collision->setScene(editor->scene_collision_metatiles);
|
||||
//ui->graphicsView_Collision->setSceneRect(editor->scene_collision_metatiles->sceneRect());
|
||||
|
@ -1178,8 +1178,11 @@ void MainWindow::updateTilesetEditor() {
|
|||
void MainWindow::redrawMetatileSelection()
|
||||
{
|
||||
double scale = pow(3.0, static_cast<double>(porymapConfig.getMetatilesZoom() - 30) / 30.0);
|
||||
ui->graphicsView_currentMetatileSelection->setFixedSize(editor->scene_current_metatile_selection_item->pixmap().width() * scale + 2, editor->scene_current_metatile_selection_item->pixmap().height() * scale + 2);
|
||||
ui->graphicsView_currentMetatileSelection->setSceneRect(0, 0, editor->scene_current_metatile_selection_item->pixmap().width() * scale, editor->scene_current_metatile_selection_item->pixmap().height() * scale);
|
||||
QTransform transform;
|
||||
transform.scale(scale, scale);
|
||||
|
||||
ui->graphicsView_currentMetatileSelection->setTransform(transform);
|
||||
ui->graphicsView_currentMetatileSelection->setFixedSize(editor->current_metatile_selection_item->pixmap().width() * scale + 2, editor->current_metatile_selection_item->pixmap().height() * scale + 2);
|
||||
|
||||
QPoint size = editor->metatile_selector_item->getSelectionDimensions();
|
||||
if (size.x() == 1 && size.y() == 1) {
|
||||
|
@ -2632,21 +2635,20 @@ void MainWindow::on_horizontalSlider_MetatileZoom_valueChanged(int value) {
|
|||
porymapConfig.setMetatilesZoom(value);
|
||||
double scale = pow(3.0, static_cast<double>(value - 30) / 30.0);
|
||||
|
||||
QMatrix matrix;
|
||||
matrix.scale(scale, scale);
|
||||
QTransform transform;
|
||||
transform.scale(scale, scale);
|
||||
QSize size(editor->metatile_selector_item->pixmap().width(),
|
||||
editor->metatile_selector_item->pixmap().height());
|
||||
size *= scale;
|
||||
|
||||
ui->graphicsView_Metatiles->setResizeAnchor(QGraphicsView::NoAnchor);
|
||||
ui->graphicsView_Metatiles->setMatrix(matrix);
|
||||
ui->graphicsView_Metatiles->setTransform(transform);
|
||||
ui->graphicsView_Metatiles->setFixedSize(size.width() + 2, size.height() + 2);
|
||||
|
||||
ui->graphicsView_BorderMetatile->setMatrix(matrix);
|
||||
ui->graphicsView_BorderMetatile->setTransform(transform);
|
||||
ui->graphicsView_BorderMetatile->setFixedSize(ceil(static_cast<double>(editor->selected_border_metatiles_item->pixmap().width()) * scale) + 2,
|
||||
ceil(static_cast<double>(editor->selected_border_metatiles_item->pixmap().height()) * scale) + 2);
|
||||
|
||||
ui->graphicsView_currentMetatileSelection->setMatrix(matrix);
|
||||
redrawMetatileSelection();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue