bool CmdSpreadsheetSplitCell::isActive() { if (getActiveGuiDocument()) { Gui::MDIView* activeWindow = Gui::getMainWindow()->activeWindow(); SpreadsheetGui::SheetView * sheetView = freecad_dynamic_cast<SpreadsheetGui::SheetView>(activeWindow); if (sheetView) { QModelIndex current = sheetView->currentIndex(); Sheet * sheet = sheetView->getSheet(); if (current.isValid()) return sheet->isMergedCell(CellAddress(current.row(), current.column())); } } return false; }
void CmdSpreadsheetSplitCell::activated(int iMsg) { if (getActiveGuiDocument()) { Gui::MDIView* activeWindow = Gui::getMainWindow()->activeWindow(); SpreadsheetGui::SheetView * sheetView = freecad_dynamic_cast<SpreadsheetGui::SheetView>(activeWindow); if (sheetView) { Sheet * sheet = sheetView->getSheet(); QModelIndex current = sheetView->currentIndex(); if (current.isValid()) { std::string address = CellAddress(current.row(), current.column()).toString(); Gui::Command::openCommand("Split cell"); Gui::Command::doCommand(Gui::Command::Doc,"App.ActiveDocument.%s.splitCell('%s')", sheet->getNameInDocument(), address.c_str()); Gui::Command::commitCommand(); Gui::Command::doCommand(Gui::Command::Doc, "App.ActiveDocument.recompute()"); } } } }