]> SALOME platform Git repositories - modules/shaper.git/blob - src/ModuleBase/ModuleBase_WidgetAction.cpp
Salome HOME
2b0dd39151156044a7a95ccb990f1432fcf00e06
[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 = QString::fromStdString(theData->widgetTooltip());
28
29   myButton = new QToolButton(this);
30   myButton->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
31   aControlLay->addWidget(myButton);
32
33   QString aLabelIcon = QString::fromStdString(theData->widgetIcon());
34   if (!aLabelIcon.isEmpty())
35     myButton->setIcon(QPixmap(aLabelIcon));
36   else
37     myButton->setText(aText);
38   myButton->setToolTip(aToolTip);
39
40   connect(myButton, SIGNAL(clicked(bool)), this, SLOT(onActionClicked()));
41 }
42
43 ModuleBase_WidgetAction::~ModuleBase_WidgetAction()
44 {
45 }
46
47 QList<QWidget*> ModuleBase_WidgetAction::getControls() const
48 {
49   QList<QWidget*> aList;
50   aList.append(myButton);
51   return aList;
52 }
53
54 bool ModuleBase_WidgetAction::storeValueCustom()
55 {
56   return true;
57 }
58
59 bool ModuleBase_WidgetAction::restoreValueCustom()
60 {
61   return true;
62 }
63
64 void ModuleBase_WidgetAction::onActionClicked()
65 {
66   if (myFeature->customAction(myActionID))
67     updateObject(myFeature);
68 }