X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;ds=inline;f=src%2FModuleBase%2FModuleBase_Dialog.cpp;h=8bcab3ee803be6b9ca11be6136c44466012e768f;hb=374a366d81778aa27ed32cc080c0f95bdb03f1c5;hp=0f2ffeeb68726cb934ef8294897edef4c2289c0a;hpb=8175b5cad6d269bb1b3cfdff65054d822b31890b;p=modules%2Fshaper.git diff --git a/src/ModuleBase/ModuleBase_Dialog.cpp b/src/ModuleBase/ModuleBase_Dialog.cpp index 0f2ffeeb6..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 @@ -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); - QString aTitle = ModuleBase_Tools::translate("ModuleBase_Dialog", aFactory.widgetAPI()->getProperty(FEATURE_TEXT)); + 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(); - 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()); +}