| 248 | } |
| 249 | |
| 250 | void FunctionValuesDialog::showFunctions() { |
| 251 | QMenu menu; |
| 252 | FunctionsWidget functions(&menu); |
| 253 | connect(&functions, &FunctionsWidget::functionSelected, this, &FunctionValuesDialog::insertFunction); |
| 254 | connect(&functions, &FunctionsWidget::functionSelected, &menu, &QMenu::close); |
| 255 | connect(&functions, &FunctionsWidget::canceled, &menu, &QMenu::close); |
| 256 | |
| 257 | auto* widgetAction{new QWidgetAction(this)}; |
| 258 | widgetAction->setDefaultWidget(&functions); |
| 259 | menu.addAction(widgetAction); |
| 260 | |
| 261 | QPoint pos(-menu.sizeHint().width() + ui.tbFunctions->width(), -menu.sizeHint().height()); |
| 262 | menu.exec(ui.tbFunctions->mapToGlobal(pos)); |
| 263 | } |
| 264 | |
| 265 | void FunctionValuesDialog::insertFunction(const QString& functionName) const { |
| 266 | ui.teEquation->insertPlainText(functionName + ExpressionParser::functionArgumentString(functionName, XYEquationCurve::EquationType::Cartesian)); |