X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModuleBase%2FModuleBase_Dialog.cpp;h=8bcab3ee803be6b9ca11be6136c44466012e768f;hb=1a63110bcc46e3964c5fa7dcd49ea6083bc3d0fb;hp=22b276fd2d4c84613421ba523d618077e416a7b4;hpb=c4eab94a20a0d93100549a210582d46409fec1cc;p=modules%2Fshaper.git diff --git a/src/ModuleBase/ModuleBase_Dialog.cpp b/src/ModuleBase/ModuleBase_Dialog.cpp index 22b276fd2..8bcab3ee8 100644 --- a/src/ModuleBase/ModuleBase_Dialog.cpp +++ b/src/ModuleBase/ModuleBase_Dialog.cpp @@ -1,4 +1,4 @@ -// Copyright (C) 2014-2019 CEA/DEN, EDF R&D +// Copyright (C) 2014-2021 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 @@ -23,6 +23,7 @@ #include "ModuleBase_IPropertyPanel.h" #include "ModuleBase_PageWidget.h" #include "ModuleBase_ModelDialogWidget.h" +#include "ModuleBase_Tools.h" #include #include @@ -37,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)); @@ -62,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); @@ -78,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); @@ -119,3 +129,8 @@ void ModuleBase_Dialog::accept() } QDialog::accept(); } + +void ModuleBase_Dialog::onHelpRequest() +{ + myWorkshop->showHelpPage(myHelpPage.c_str()); +}