X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModuleBase%2FModuleBase_Dialog.cpp;h=046c8abb55ee9674f57b598bf407df3f54f28037;hb=0f31b19c1a4208e3021259ccba85889a7a29add5;hp=0ac6a72b1e1866a45ef51bd4a0683ed1c98e4ede;hpb=81385a0637e698f9d36b98c78f84b777a43b991a;p=modules%2Fshaper.git diff --git a/src/ModuleBase/ModuleBase_Dialog.cpp b/src/ModuleBase/ModuleBase_Dialog.cpp index 0ac6a72b1..046c8abb5 100644 --- a/src/ModuleBase/ModuleBase_Dialog.cpp +++ b/src/ModuleBase/ModuleBase_Dialog.cpp @@ -1,36 +1,60 @@ -// Copyright (C) 2014-20xx CEA/DEN, EDF R&D - +// Copyright (C) 2014-2019 CEA/DEN, EDF R&D +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// #include "ModuleBase_Dialog.h" #include "ModuleBase_WidgetFactory.h" #include "ModuleBase_IWorkshop.h" #include "ModuleBase_IPropertyPanel.h" #include "ModuleBase_PageWidget.h" +#include "ModuleBase_ModelDialogWidget.h" +#include "ModuleBase_Tools.h" #include #include #include +#include +#include + #include #include #include #include -ModuleBase_Dialog::ModuleBase_Dialog(ModuleBase_IWorkshop* theParent, const QString& theId, - const std::string& theDescription) : - QDialog(theParent->desktop()), - myId(theId), - myDescription(theDescription), +ModuleBase_Dialog::ModuleBase_Dialog(ModuleBase_IWorkshop* theParent, const QString& theId, + const std::string& theDescription) : + QDialog(theParent->desktop()), + myId(theId), + myDescription(theDescription), myWorkshop(theParent), myActiveWidget(0) { ModuleBase_WidgetFactory aFactory(myDescription, myWorkshop); + QString aTitle = ModuleBase_Tools::translate("ModuleBase_Dialog", + aFactory.widgetAPI()->getProperty(FEATURE_TEXT)); + + setWindowTitle(aTitle); SessionPtr aMgr = ModelAPI_Session::get(); std::shared_ptr aDoc = aMgr->activeDocument(); - aMgr->startOperation(myId.toStdString()); myFeature = aDoc->addFeature(myId.toStdString()); if (!myFeature.get()) return; @@ -47,30 +71,35 @@ ModuleBase_Dialog::ModuleBase_Dialog(ModuleBase_IWorkshop* theParent, const QStr aFactory.createWidget(aPage, false); myWidgets = aFactory.getModelWidgets(); - foreach (ModuleBase_ModelWidget* aWidget, myWidgets) { - initializeWidget(aWidget); - } QFrame* aFrame = new QFrame(this); aFrame->setFrameStyle(QFrame::WinPanel | QFrame::Raised); aLayout->addWidget(aFrame); - QVBoxLayout* aBtnLayout = new QVBoxLayout(aFrame); + QHBoxLayout* aBtnLayout = new QHBoxLayout(aFrame); ModuleBase_Tools::adjustMargins(aBtnLayout); - QDialogButtonBox* aBtnBox = new QDialogButtonBox( + myButtonsBox = new QDialogButtonBox( QDialogButtonBox::Ok | QDialogButtonBox::Cancel, Qt::Horizontal, aFrame); - aBtnLayout->addWidget(aBtnBox); + aBtnLayout->addWidget(myButtonsBox); - aBtnBox->button(QDialogButtonBox::Ok)->setIcon(QIcon(":pictures/button_ok.png")); - aBtnBox->button(QDialogButtonBox::Cancel)->setIcon(QIcon(":pictures/button_cancel.png")); + myButtonsBox->button(QDialogButtonBox::Ok)->setIcon(QIcon(":pictures/button_ok.png")); + myButtonsBox->button(QDialogButtonBox::Cancel)->setIcon(QIcon(":pictures/button_cancel.png")); - connect(aBtnBox, SIGNAL(accepted()), this, SLOT(accept())); - connect(aBtnBox, SIGNAL(rejected()), this, SLOT(reject())); + connect(myButtonsBox, SIGNAL(accepted()), this, SLOT(accept())); + connect(myButtonsBox, SIGNAL(rejected()), this, SLOT(reject())); + + foreach (ModuleBase_ModelWidget* aWidget, myWidgets) { + initializeWidget(aWidget); + } } void ModuleBase_Dialog::initializeWidget(ModuleBase_ModelWidget* theWidget) { + ModuleBase_ModelDialogWidget* aDlgWgt = dynamic_cast(theWidget); + if (aDlgWgt) + aDlgWgt->setDialogButtons(myButtonsBox); + theWidget->setFeature(myFeature); theWidget->restoreValue(); }