From 02c9a3f3d8ad537e0f598c3abc35202ecc136e0a Mon Sep 17 00:00:00 2001 From: Ivan Savenko Date: Mon, 10 Apr 2023 14:33:24 +0300 Subject: [PATCH 1/3] Correctly reset UI on aborting Clone/Sacrifice --- client/battle/BattleActionsController.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/client/battle/BattleActionsController.cpp b/client/battle/BattleActionsController.cpp index 18c31acb4..05421de07 100644 --- a/client/battle/BattleActionsController.cpp +++ b/client/battle/BattleActionsController.cpp @@ -128,6 +128,7 @@ void BattleActionsController::endCastingSpell() if(owner.stacksController->getActiveStack()) possibleActions = getPossibleActionsForStack(owner.stacksController->getActiveStack()); //restore actions after they were cleared + selectedStack = nullptr; GH.fakeMouseMove(); } From 5046f916d69c0081f38c32a5c247267c93aa4646 Mon Sep 17 00:00:00 2001 From: Ivan Savenko Date: Mon, 10 Apr 2023 14:33:53 +0300 Subject: [PATCH 2/3] Fix filtering of objects by terrain in editor --- mapeditor/mainwindow.cpp | 14 +++++++++----- mapeditor/mainwindow.h | 2 +- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/mapeditor/mainwindow.cpp b/mapeditor/mainwindow.cpp index ce3150731..71af287bf 100644 --- a/mapeditor/mainwindow.cpp +++ b/mapeditor/mainwindow.cpp @@ -553,7 +553,10 @@ void MainWindow::loadObjectsTree() connect(b, &QPushButton::clicked, this, [this, terrain]{ terrainButtonClicked(terrain->getId()); }); //filter - ui->terrainFilterCombo->addItem(QString::fromStdString(terrain->getNameTranslated())); + QString displayName = QString::fromStdString(terrain->getNameTranslated()); + QString uniqueName = QString::fromStdString(terrain->getJsonKey()); + + ui->terrainFilterCombo->addItem(displayName, QVariant(uniqueName)); } //add spacer to keep terrain button on the top ui->terrainLayout->addItem(new QSpacerItem(20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding)); @@ -929,23 +932,24 @@ void MainWindow::treeViewSelected(const QModelIndex & index, const QModelIndex & preparePreview(index); } -void MainWindow::on_terrainFilterCombo_currentTextChanged(const QString &arg1) +void MainWindow::on_terrainFilterCombo_currentIndexChanged(int index) { if(!objectBrowser) return; + QString uniqueName = ui->terrainFilterCombo->itemData(index).toString(); + objectBrowser->terrain = TerrainId(ETerrainId::ANY_TERRAIN); - if (!arg1.isEmpty()) + if (!uniqueName.isEmpty()) { for (auto const & terrain : VLC->terrainTypeHandler->objects) - if (terrain->getJsonKey() == arg1.toStdString()) + if (terrain->getJsonKey() == uniqueName.toStdString()) objectBrowser->terrain = terrain->getId(); } objectBrowser->invalidate(); objectBrowser->sort(0); } - void MainWindow::on_filter_textChanged(const QString &arg1) { if(!objectBrowser) diff --git a/mapeditor/mainwindow.h b/mapeditor/mainwindow.h index 2408a4dd5..16f5e6a18 100644 --- a/mapeditor/mainwindow.h +++ b/mapeditor/mainwindow.h @@ -83,7 +83,7 @@ private slots: void on_toolErase_clicked(); - void on_terrainFilterCombo_currentTextChanged(const QString &arg1); + void on_terrainFilterCombo_currentIndexChanged(int index); void on_filter_textChanged(const QString &arg1); From 07230f3b471880dc06e2213c3da440d8b58b578c Mon Sep 17 00:00:00 2001 From: Ivan Savenko Date: Mon, 10 Apr 2023 14:34:17 +0300 Subject: [PATCH 3/3] Attempt to fix stack splitting on macos --- client/gui/CGuiHandler.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/client/gui/CGuiHandler.cpp b/client/gui/CGuiHandler.cpp index 3135104fe..831107021 100644 --- a/client/gui/CGuiHandler.cpp +++ b/client/gui/CGuiHandler.cpp @@ -712,7 +712,11 @@ void CGuiHandler::moveCursorToPosition(const Point & position) bool CGuiHandler::isKeyboardCtrlDown() const { +#ifdef VCMI_MAC + return SDL_GetKeyboardState(nullptr)[SDL_SCANCODE_LGUI] || SDL_GetKeyboardState(nullptr)[SDL_SCANCODE_RGUI]; +#else return SDL_GetKeyboardState(nullptr)[SDL_SCANCODE_LCTRL] || SDL_GetKeyboardState(nullptr)[SDL_SCANCODE_RCTRL]; +#endif } bool CGuiHandler::isKeyboardAltDown() const