X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModuleBase%2FModuleBase_Dialog.cpp;h=64389bebb172667e64c9b9210e5d86757644781e;hb=d335fa85ad1b38088f011253a3189276556cc959;hp=6c0cacd4f6cd23700d06237423ddaec2d3ac413d;hpb=39bb14c5ae7df11b8c788ab0037ba5b893267204;p=modules%2Fshaper.git diff --git a/src/ModuleBase/ModuleBase_Dialog.cpp b/src/ModuleBase/ModuleBase_Dialog.cpp index 6c0cacd4f..64389bebb 100644 --- a/src/ModuleBase/ModuleBase_Dialog.cpp +++ b/src/ModuleBase/ModuleBase_Dialog.cpp @@ -1,4 +1,4 @@ -// Copyright (C) 2014-2017 CEA/DEN, EDF R&D +// Copyright (C) 2014-2023 CEA, EDF // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -12,10 +12,9 @@ // // 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 +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or -// email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include "ModuleBase_Dialog.h" @@ -24,6 +23,7 @@ #include "ModuleBase_IPropertyPanel.h" #include "ModuleBase_PageWidget.h" #include "ModuleBase_ModelDialogWidget.h" +#include "ModuleBase_Tools.h" #include #include @@ -38,23 +38,30 @@ #include -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_Dialog::ModuleBase_Dialog(ModuleBase_IWorkshop* theParent, + const std::string& theDescription) : + QDialog(theParent->desktop(), + Qt::Dialog | Qt::CustomizeWindowHint | Qt::WindowTitleHint | Qt::WindowCloseButtonHint), + myDescription(theDescription), + myWorkshop(theParent), + myActiveWidget(0) { + Config_WidgetAPI aApi(myDescription, ""); + myId = aApi.getProperty("id"); + + std::shared_ptr aFeatureInfo = myWorkshop->featureInfo(myId.c_str()); + myHelpPage = aFeatureInfo->helpFileName(); + ModuleBase_WidgetFactory aFactory(myDescription, myWorkshop); - std::string aTitle = aFactory.widgetAPI()->getProperty(FEATURE_TEXT); + QString aTitle = ModuleBase_Tools::translate("ModuleBase_Dialog", + aFactory.widgetAPI()->getProperty(FEATURE_TEXT)); - setWindowTitle(aTitle.c_str()); + setWindowTitle(aTitle); SessionPtr aMgr = ModelAPI_Session::get(); std::shared_ptr aDoc = aMgr->activeDocument(); - myFeature = aDoc->addFeature(myId.toStdString()); + myFeature = aDoc->addFeature(myId); if (!myFeature.get()) return; Events_Loop::loop()->flush(Events_Loop::eventByName(EVENT_OBJECT_CREATED)); @@ -63,7 +70,6 @@ ModuleBase_Dialog::ModuleBase_Dialog(ModuleBase_IWorkshop* theParent, const QStr QVBoxLayout* aLayout = new QVBoxLayout(this); aLayout->setContentsMargins(0, 0, 0, 0); aLayout->setSpacing(1); - //setSizePolicy(QSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred)); ModuleBase_PageWidget* aPage = new ModuleBase_PageWidget(this); aLayout->addWidget(aPage); @@ -79,14 +85,17 @@ ModuleBase_Dialog::ModuleBase_Dialog(ModuleBase_IWorkshop* theParent, const QStr ModuleBase_Tools::adjustMargins(aBtnLayout); myButtonsBox = new QDialogButtonBox( - QDialogButtonBox::Ok | QDialogButtonBox::Cancel, Qt::Horizontal, aFrame); + QDialogButtonBox::Ok | QDialogButtonBox::Cancel | QDialogButtonBox::Help, + Qt::Horizontal, aFrame); aBtnLayout->addWidget(myButtonsBox); myButtonsBox->button(QDialogButtonBox::Ok)->setIcon(QIcon(":pictures/button_ok.png")); myButtonsBox->button(QDialogButtonBox::Cancel)->setIcon(QIcon(":pictures/button_cancel.png")); + myButtonsBox->button(QDialogButtonBox::Help)->setIcon(QIcon(":pictures/button_help.png")); connect(myButtonsBox, SIGNAL(accepted()), this, SLOT(accept())); connect(myButtonsBox, SIGNAL(rejected()), this, SLOT(reject())); + connect(myButtonsBox, SIGNAL(helpRequested()), this, SLOT(onHelpRequest())); foreach (ModuleBase_ModelWidget* aWidget, myWidgets) { initializeWidget(aWidget); @@ -120,3 +129,8 @@ void ModuleBase_Dialog::accept() } QDialog::accept(); } + +void ModuleBase_Dialog::onHelpRequest() +{ + myWorkshop->showHelpPage(myHelpPage.c_str()); +}