2 * ModuleBase_WidgetMultiSelector.cpp
4 * Created on: Aug 28, 2014
8 #include <ModuleBase_WidgetMultiSelector.h>
9 #include <ModuleBase_Tools.h>
11 #include <ModelAPI_AttributeString.h>
12 #include <ModelAPI_Data.h>
13 #include <ModelAPI_Object.h>
14 #include <ModelAPI_Validator.h>
16 #include <Config_WidgetAPI.h>
18 #include <QVBoxLayout>
24 #include <boost/smart_ptr/shared_ptr.hpp>
27 ModuleBase_WidgetMultiSelector::ModuleBase_WidgetMultiSelector(QWidget* theParent,
28 const Config_WidgetAPI* theData,
29 const std::string& theParentId)
30 : ModuleBase_ModelWidget(theParent, theData, theParentId)
32 myMainWidget = new QWidget(theParent);
33 QVBoxLayout* aMainLay = new QVBoxLayout(myMainWidget);
34 ModuleBase_Tools::adjustMargins(aMainLay);
35 QString aTitle = QString::fromStdString(theData->widgetLabel());
36 QLabel* aTitleLabel = new QLabel(aTitle, myMainWidget);
37 aMainLay->addWidget(aTitleLabel);
38 myListControl = new QTextEdit(myMainWidget);
39 myListControl->setReadOnly(true);
40 aMainLay->addWidget(myListControl);
41 myListControl->setMinimumHeight(20);
42 myMainWidget->setLayout(aMainLay);
44 connect(myListControl, SIGNAL(textChanged(const QString&)), this, SLOT(onTextChanged()));
47 ModuleBase_WidgetMultiSelector::~ModuleBase_WidgetMultiSelector()
51 bool ModuleBase_WidgetMultiSelector::storeValue() const
53 // A rare case when plugin was not loaded.
56 DataPtr aData = myFeature->data();
57 AttributeStringPtr aStringAttr = aData->string(attributeID());
58 QString aWidgetValue = myListControl->toPlainText();
59 aStringAttr->setValue(aWidgetValue.toStdString());
60 updateObject(myFeature);
64 bool ModuleBase_WidgetMultiSelector::restoreValue()
66 // A rare case when plugin was not loaded.
69 DataPtr aData = myFeature->data();
70 AttributeStringPtr aStringAttr = aData->string(attributeID());
72 bool isBlocked = myListControl->blockSignals(true);
73 myListControl->setText(QString::fromStdString(aStringAttr->value()));
74 myListControl->blockSignals(isBlocked);
79 QWidget* ModuleBase_WidgetMultiSelector::getControl() const
84 QList<QWidget*> ModuleBase_WidgetMultiSelector::getControls() const
86 QList<QWidget*> result;
87 result << myListControl;