示例#1
0
void FitDialog::removeUserFunction()
{
	if (!funcBox->currentItem())
		return;
	QString name = funcBox->currentItem()->text();
	if (d_user_function_names.contains(name))
	{
		explainBox->setText(QString());

		int index = d_user_function_names.indexOf(name);
		d_user_function_names.remove(name);

		QString f = d_user_functions[index];
		d_user_functions.remove(f);

		f = d_user_function_params[index];
		d_user_function_params.remove(f);

		funcBox->clear();
		funcBox->addItems (d_user_function_names);
		funcBox->setCurrentRow (0);

		if (!d_user_function_names.count())
            {
			boxUseBuiltIn->setEnabled(false);
            buttonClearUsrList->setEnabled(false);
            }

		emit saveFunctionsList(d_user_functions);
	}
}
void fitDialog::removeUserFunction()
{
    QString name = funcBox->currentText();
    if (userFunctionNames.contains(name))
    {
        explainBox->setText(QString::null);

        int index = userFunctionNames.findIndex(name);
        userFunctionNames.remove(name);

        QString f = userFunctions[index];
        userFunctions.remove(f);

        f = userFunctionParams[index];
        userFunctionParams.remove(f);

        funcBox->clear();
        funcBox->insertStringList(userFunctionNames, -1);
        funcBox->setCurrentItem(0);

        if (!userFunctionNames.count())
            boxUseBuiltIn->setEnabled(false);

        emit saveFunctionsList(userFunctions);
    }
}
示例#3
0
void FitDialog::saveUserFunction()
{
	if (editBox->text().isEmpty())
	{
		QMessageBox::critical(this, tr("Input function error"), tr("Please enter a valid function!"));
		editBox->setFocus();
		return;
	}
	else if (boxName->text().isEmpty())
	{
		QMessageBox::critical(this, tr("Input function error"),
				tr("Please enter a function name!"));
		boxName->setFocus();
		return;
	}
	else if (boxParam->text().remove(QRegExp("[,;\\s]")).isEmpty())
	{
		QMessageBox::critical(this, tr("Input function error"),
				tr("Please enter at least one parameter name!"));
		boxParam->setFocus();
		return;
	}

	if (d_built_in_function_names.contains(boxName->text()))
	{
		QMessageBox::critical(this, tr("Error: function name"),
				"<p><b>" + boxName->text() + "</b>" + tr(" is a built-in function name"
					"<p>You must choose another name for your function!"));
		editBox->setFocus();
		return;
	}
	if (editBox->text().contains(boxName->text()))
	{
		QMessageBox::critical(this, tr("Input function error"),
				tr("You can't define functions recursevely!"));
		editBox->setFocus();
		return;
	}

	QString name = boxName->text();
	QString f = name + "(x, " + boxParam->text() + ")=" + editBox->text().remove("\n");

	if (d_user_function_names.contains(name))
	{
		int index = d_user_function_names.indexOf(name);
		d_user_functions[index] = f;
		d_user_function_params[index] = boxParam->text();

		if (funcBox->currentItem()->text() == name)
			showExpression(index);
	}
	else
	{
		d_user_function_names << name;
		d_user_functions << f;
		d_user_function_params << boxParam->text();

		if (categoryBox->currentRow() == 0)
		{
			funcBox->addItem(name);
			funcBox->setCurrentRow (funcBox->count()-1);
		}

		if (d_user_function_names.count()>0 && !boxUseBuiltIn->isEnabled() && categoryBox->currentRow() == 0)
			boxUseBuiltIn->setEnabled(true);
	}
    buttonClearUsrList->setEnabled(true);
	emit saveFunctionsList(d_user_functions);
}
void fitDialog::saveUserFunction()
{
    if (editBox->text().isEmpty())
    {
        QMessageBox::critical(0, tr("QtiPlot - Input function error"),
                              tr("Please enter a valid function!"));
        editBox->setFocus();
        return;
    }
    else if (boxName->text().isEmpty())
    {
        QMessageBox::critical(0, tr("QtiPlot - Input function error"),
                              tr("Please enter a function name!"));
        boxName->setFocus();
        return;
    }
    else if (boxParam->text().remove(QRegExp("[,;\\s]")).isEmpty())
    {
        QMessageBox::critical(0, tr("QtiPlot - Input function error"),
                              tr("Please enter at least one parameter name!"));
        boxParam->setFocus();
        return;
    }

    if (builtInFunctionNames.contains(boxName->text()))
    {
        QMessageBox::critical(0, tr("QtiPlot - Error: function name"),
                              "<p><b>"+boxName->text()+ "</b>"+tr(" is a built-in function name"
                                      "<p>You must choose another name for your function!"));
        editBox->setFocus();
        return;
    }
    if (editBox->text().contains(boxName->text()))
    {
        QMessageBox::critical(0, tr("QtiPlot - Input function error"),
                              tr("You can't define functions recursevely!"));
        editBox->setFocus();
        return;
    }
    QString name = boxName->text();
    QString f = name +"(x, " + boxParam->text() + ")="+editBox->text().remove("\n");
    if (userFunctionNames.contains(name))
    {
        int index = userFunctionNames.findIndex(name);
        userFunctions[index] = f;
        userFunctionParams[index] = boxParam->text();

        if (funcBox->currentText() == name)
            showExpression(index);
    }
    else
    {
        userFunctionNames << name;
        userFunctions << f;
        userFunctionParams << boxParam->text();

        if (categoryBox->currentItem() == 0)
        {
            funcBox->insertItem(name, -1);
            funcBox->setCurrentItem(funcBox->numRows()-1);
        }

        if ((int)userFunctionNames.count()>0 && !boxUseBuiltIn->isEnabled() && categoryBox->currentItem() == 0)
            boxUseBuiltIn->setEnabled(true);
    }

    emit saveFunctionsList(userFunctions);
}