diff --git a/src/Mod/Spreadsheet/Gui/Command.cpp b/src/Mod/Spreadsheet/Gui/Command.cpp index e04e26ac5..0dfebb6e7 100644 --- a/src/Mod/Spreadsheet/Gui/Command.cpp +++ b/src/Mod/Spreadsheet/Gui/Command.cpp @@ -39,6 +39,7 @@ #include "../App/Sheet.h" #include "../App/Range.h" #include "ViewProviderSpreadsheet.h" +#include "PropertiesDialog.h" //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ @@ -762,7 +763,69 @@ bool CmdSpreadsheetStyleUnderline::isActive() Gui::MDIView* activeWindow = Gui::getMainWindow()->activeWindow(); if (activeWindow && freecad_dynamic_cast(activeWindow)) return true; + } + return false; +} +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +DEF_STD_CMD_A(CmdSpreadsheetSetAlias); + +CmdSpreadsheetSetAlias::CmdSpreadsheetSetAlias() + : Command("Spreadsheet_SetAlias") +{ + sAppModule = "Spreadsheet"; + sGroup = QT_TR_NOOP("Spreadsheet"); + sMenuText = QT_TR_NOOP("Set alias"); + sToolTipText = QT_TR_NOOP("Set alias for selected cell"); + sWhatsThis = sToolTipText; + sStatusTip = sToolTipText; + sAccel = "Ctrl+Shift+A"; + sPixmap = "SpreadsheetAlias"; +} + +void CmdSpreadsheetSetAlias::activated(int iMsg) +{ + if (getActiveGuiDocument()) { + Gui::MDIView* activeWindow = Gui::getMainWindow()->activeWindow(); + SpreadsheetGui::SheetView * sheetView = freecad_dynamic_cast(activeWindow); + + if (sheetView) { + Sheet * sheet = sheetView->getSheet(); + QModelIndexList selection = sheetView->selectedIndexes(); + + if (selection.size() == 1) { + std::vector range; + + range.push_back(Range(selection[0].row(), selection[0].column(), + selection[0].row(), selection[0].column())); + + std::auto_ptr dialog(new PropertiesDialog(sheet, range, sheetView)); + + dialog->selectAlias(); + + if (dialog->exec() == QDialog::Accepted) + dialog->apply(); + } + } + } +} + +bool CmdSpreadsheetSetAlias::isActive() +{ + if (getActiveGuiDocument()) { + Gui::MDIView* activeWindow = Gui::getMainWindow()->activeWindow(); + + if (activeWindow) { + SpreadsheetGui::SheetView * sheetView = freecad_dynamic_cast(activeWindow); + + if (sheetView) { + QModelIndexList selection = sheetView->selectedIndexes(); + + if (selection.size() == 1) + return true; + } + } } return false; } @@ -822,5 +885,7 @@ void CreateSpreadsheetCommands(void) rcCmdMgr.addCommand(new CmdSpreadsheetStyleBold()); rcCmdMgr.addCommand(new CmdSpreadsheetStyleItalic()); rcCmdMgr.addCommand(new CmdSpreadsheetStyleUnderline()); + + rcCmdMgr.addCommand(new CmdSpreadsheetSetAlias()); } diff --git a/src/Mod/Spreadsheet/Gui/PropertiesDialog.cpp b/src/Mod/Spreadsheet/Gui/PropertiesDialog.cpp index 7955e699e..36bbfeb7e 100644 --- a/src/Mod/Spreadsheet/Gui/PropertiesDialog.cpp +++ b/src/Mod/Spreadsheet/Gui/PropertiesDialog.cpp @@ -295,4 +295,10 @@ void PropertiesDialog::apply() } } +void PropertiesDialog::selectAlias() +{ + ui->tabWidget->setCurrentIndex(4); + ui->alias->setFocus(); +} + #include "moc_PropertiesDialog.cpp" diff --git a/src/Mod/Spreadsheet/Gui/PropertiesDialog.h b/src/Mod/Spreadsheet/Gui/PropertiesDialog.h index e1f1a0f9b..528dcc9e9 100644 --- a/src/Mod/Spreadsheet/Gui/PropertiesDialog.h +++ b/src/Mod/Spreadsheet/Gui/PropertiesDialog.h @@ -42,6 +42,7 @@ public: ~PropertiesDialog(); void apply(); + void selectAlias(); private Q_SLOTS: void foregroundColorChanged(const QColor &color); diff --git a/src/Mod/Spreadsheet/Gui/Resources/Spreadsheet.qrc b/src/Mod/Spreadsheet/Gui/Resources/Spreadsheet.qrc index 215b76908..03f6ab768 100644 --- a/src/Mod/Spreadsheet/Gui/Resources/Spreadsheet.qrc +++ b/src/Mod/Spreadsheet/Gui/Resources/Spreadsheet.qrc @@ -37,5 +37,6 @@ translations/Spreadsheet_uk.qm translations/Spreadsheet_it.qm translations/Spreadsheet_pt-BR.qm + icons/SpreadsheetAlias.svg diff --git a/src/Mod/Spreadsheet/Gui/Resources/icons/SpreadsheetAlias.svg b/src/Mod/Spreadsheet/Gui/Resources/icons/SpreadsheetAlias.svg new file mode 100644 index 000000000..baecbac2d --- /dev/null +++ b/src/Mod/Spreadsheet/Gui/Resources/icons/SpreadsheetAlias.svg @@ -0,0 +1,171 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + diff --git a/src/Mod/Spreadsheet/Gui/SheetTableView.cpp b/src/Mod/Spreadsheet/Gui/SheetTableView.cpp index 0c929d90b..c059f9b78 100644 --- a/src/Mod/Spreadsheet/Gui/SheetTableView.cpp +++ b/src/Mod/Spreadsheet/Gui/SheetTableView.cpp @@ -67,9 +67,10 @@ SheetTableView::SheetTableView(QWidget *parent) connect(removeColumns, SIGNAL(triggered()), this, SLOT(removeColumns())); QAction * cellProperties = new QAction(tr("Properties..."), this); - setContextMenuPolicy(Qt::ActionsContextMenu); addAction(cellProperties); + setContextMenuPolicy(Qt::ActionsContextMenu); + connect(cellProperties, SIGNAL(triggered()), this, SLOT(cellProperties())); } diff --git a/src/Mod/Spreadsheet/Gui/Workbench.cpp b/src/Mod/Spreadsheet/Gui/Workbench.cpp index bc77824c2..474db089d 100644 --- a/src/Mod/Spreadsheet/Gui/Workbench.cpp +++ b/src/Mod/Spreadsheet/Gui/Workbench.cpp @@ -223,6 +223,8 @@ Gui::ToolBarItem* Workbench::setupToolBars() const << "Spreadsheet_StyleBold" << "Spreadsheet_StyleItalic" << "Spreadsheet_StyleUnderline" + << "Separator" + << "Spreadsheet_SetAlias" << "Separator" ;