From e2e91cdafa9f8020069e9bc9773c665028236f78 Mon Sep 17 00:00:00 2001 From: 0penBrain <48731257+0penBrain@users.noreply.github.com> Date: Wed, 13 Apr 2022 15:49:46 +0200 Subject: [PATCH] Sheet: enable Merge action only if at least 2 cells are selected Both main menu and context menu --- src/Mod/Spreadsheet/Gui/Command.cpp | 6 ++++-- src/Mod/Spreadsheet/Gui/SheetTableView.cpp | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/Mod/Spreadsheet/Gui/Command.cpp b/src/Mod/Spreadsheet/Gui/Command.cpp index 4d3d8df5c7..3e9ed3a5d4 100644 --- a/src/Mod/Spreadsheet/Gui/Command.cpp +++ b/src/Mod/Spreadsheet/Gui/Command.cpp @@ -105,9 +105,11 @@ bool CmdSpreadsheetMergeCells::isActive() { if (getActiveGuiDocument()) { Gui::MDIView* activeWindow = Gui::getMainWindow()->activeWindow(); - if (activeWindow && freecad_dynamic_cast(activeWindow)) - return true; + SpreadsheetGui::SheetView * sheetView = freecad_dynamic_cast(activeWindow); + if (sheetView) { + return (sheetView->selectedIndexesRaw().size() > 1); + } } return false; } diff --git a/src/Mod/Spreadsheet/Gui/SheetTableView.cpp b/src/Mod/Spreadsheet/Gui/SheetTableView.cpp index 6dfa5d1b04..19ebd9b640 100644 --- a/src/Mod/Spreadsheet/Gui/SheetTableView.cpp +++ b/src/Mod/Spreadsheet/Gui/SheetTableView.cpp @@ -973,7 +973,7 @@ void SheetTableView::contextMenuEvent(QContextMenuEvent *) actionDel->setEnabled(true); actionSplit->setEnabled(selectedIndexes().size() == 1 && sheet->isMergedCell(CellAddress(currentIndex().row(),currentIndex().column()))); - actionMerge->setEnabled(true); + actionMerge->setEnabled(selectedIndexes().size() > 1); } auto ranges = selectedRanges();