#include <QToolTip>
#include <QApplication>
+#include <QStringListModel>
+#include <QCompleter>
+#include <QShortcut>
+
#include <string>
#include <iostream>
+//#define DEBUG_COMPLETE_WITH_PARAMETERS
ModuleBase_ParamSpinBox::ModuleBase_ParamSpinBox(QWidget* theParent, int thePrecision)
: ModuleBase_DoubleSpinBox(theParent, thePrecision),
myAcceptVariables(true)
{
+#ifdef DEBUG_COMPLETE_WITH_PARAMETERS
+ myCompleter = new QCompleter(this);
+ myCompleter->setWidget(this);
+ myCompleter->setCompletionMode(QCompleter::PopupCompletion);
+
+ myCompleterModel = new QStringListModel(this);
+ myCompleter->setModel(myCompleterModel);
+ // Use sorted model to accelerate completion (QCompleter will use binary search)
+ myCompleter->setModelSorting(QCompleter::CaseInsensitivelySortedModel);
+ myCompleter->setCaseSensitivity(Qt::CaseInsensitive);
+
+ lineEdit()->setCompleter(myCompleter);
+#endif
+
connectSignalsAndSlots();
}
+void ModuleBase_ParamSpinBox::setCompletionList(QStringList& theList)
+{
+#ifdef DEBUG_COMPLETE_WITH_PARAMETERS
+ theList.sort();
+ theList.removeDuplicates();
+ myCompleterModel->setStringList(theList);
+#endif
+}
+
/*!
\brief Destructor.
*/
if (!hasVariable(theText))
return ModuleBase_DoubleSpinBox::valueFromText(theText);
- // small hack: return length of the string to initiate valuesChanged signal
+ // small hack: return hash of the string to initiate valuesChanged signal
return qHash(theText);
}
double& outValue) const
{
ResultParameterPtr aParam;
- return ModelAPI_Tools::findVariable(theName.toStdString(), outValue, aParam);
+ return ModelAPI_Tools::findVariable(FeaturePtr(), theName.toStdString(), outValue, aParam);
}
/*!
- \brief This function is called when the spinbox recieves key press event.
+ \brief This function is called when the spinbox receives key press event.
*/
//void ModuleBase_ParamSpinBox::keyPressEvent(QKeyEvent* e)
//{
//}
/*!
- \brief This function is called when the spinbox recieves show event.
+ \brief This function is called when the spinbox receives show event.
*/
void ModuleBase_ParamSpinBox::showEvent(QShowEvent* theEvent)
{