Salome HOME
f63455d18824431da9640463496ae2211e7239f9
[modules/shaper.git] / src / ModuleBase / ModuleBase_WidgetAction.cpp
1 // Copyright (C) 2014-20xx CEA/DEN, EDF R&D
2
3 // File:        ModuleBase_WidgetAction.cpp
4 // Created:     15 Apr 2016
5 // Author:      Natalia Ermolaeva
6
7 #include <ModuleBase_WidgetAction.h>
8 #include <ModuleBase_Tools.h>
9
10 #include <Config_WidgetAPI.h>
11
12 #include <QWidget>
13 #include <QHBoxLayout>
14 #include <QToolButton>
15
16 ModuleBase_WidgetAction::ModuleBase_WidgetAction(QWidget* theParent,
17                                                  const Config_WidgetAPI* theData)
18 : ModuleBase_ModelWidget(theParent, theData)
19 {
20   QHBoxLayout* aControlLay = new QHBoxLayout(this);
21   ModuleBase_Tools::adjustMargins(aControlLay);
22
23   myActionID = attributeID();
24   setAttributeID("");
25
26   QString aText = QString::fromStdString(theData->widgetLabel());
27   QString aToolTip = ModuleBase_Tools::wrapToolTipByWords(
28                         QString::fromStdString(theData->widgetTooltip()), myButton);
29
30   myButton = new QToolButton(this);
31   myButton->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
32   aControlLay->addWidget(myButton);
33
34   QString aLabelIcon = QString::fromStdString(theData->widgetIcon());
35   if (!aLabelIcon.isEmpty())
36     myButton->setIcon(QPixmap(aLabelIcon));
37   else
38     myButton->setText(aText);
39   myButton->setToolTip(aToolTip);
40
41   connect(myButton, SIGNAL(clicked(bool)), this, SLOT(onActionClicked()));
42 }
43
44 ModuleBase_WidgetAction::~ModuleBase_WidgetAction()
45 {
46 }
47
48 QList<QWidget*> ModuleBase_WidgetAction::getControls() const
49 {
50   QList<QWidget*> aList;
51   aList.append(myButton);
52   return aList;
53 }
54
55 bool ModuleBase_WidgetAction::storeValueCustom()
56 {
57   return true;
58 }
59
60 bool ModuleBase_WidgetAction::restoreValueCustom()
61 {
62   return true;
63 }
64
65 void ModuleBase_WidgetAction::onActionClicked()
66 {
67   if (myFeature->customAction(myActionID))
68     updateObject(myFeature);
69 }