Skip to content

Commit

Permalink
ENH: Add CLI Module translation helpers.
Browse files Browse the repository at this point in the history
  • Loading branch information
u8621011 committed Feb 23, 2018
1 parent 81f2f06 commit bdce361
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 11 deletions.
18 changes: 11 additions & 7 deletions Base/QTCLI/qSlicerCLIModuleUIHelper.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
#include <QRadioButton>
#include <QSpinBox>
#include <QToolButton>
#include <QCoreApplication>
#include <QSizePolicy>

// CTK includes
Expand Down Expand Up @@ -184,7 +185,7 @@ class qSlicerCLIModuleUIHelperPrivate
QWidget* createPointTagWidget(const ModuleParameter& moduleParameter);
QWidget* createPointFileTagWidget(const ModuleParameter& moduleParameter);
QWidget* createRegionTagWidget(const ModuleParameter& moduleParameter);
QWidget* createImageTagWidget(const ModuleParameter& moduleParameter);
QWidget* createImageTagWidget(const QString moduleName, const ModuleParameter& moduleParameter);
QWidget* createGeometryTagWidget(const ModuleParameter& moduleParameter);
QWidget* createTableTagWidget(const ModuleParameter& moduleParameter);
QWidget* createTransformTagWidget(const ModuleParameter& moduleParameter);
Expand Down Expand Up @@ -623,7 +624,7 @@ QWidget* qSlicerCLIModuleUIHelperPrivate::createRegionTagWidget(const ModulePara
}

//-----------------------------------------------------------------------------
QWidget* qSlicerCLIModuleUIHelperPrivate::createImageTagWidget(const ModuleParameter& moduleParameter)
QWidget* qSlicerCLIModuleUIHelperPrivate::createImageTagWidget(const QString moduleName, const ModuleParameter& moduleParameter)
{
QString channel = QString::fromStdString(moduleParameter.GetChannel());
if (channel != "input" && channel != "output")
Expand Down Expand Up @@ -664,6 +665,7 @@ QWidget* qSlicerCLIModuleUIHelperPrivate::createImageTagWidget(const ModuleParam

// TODO - title + " Volume"

QString lbl = QCoreApplication::translate(moduleName.toLatin1(), moduleParameter.GetLabel().c_str());
QString imageLabel = QString::fromStdString(moduleParameter.GetLabel());
QString imageName = QString::fromStdString(moduleParameter.GetName());

Expand All @@ -682,13 +684,14 @@ QWidget* qSlicerCLIModuleUIHelperPrivate::createImageTagWidget(const ModuleParam
// created node.
widget->setAddEnabled(channel != "input");
widget->setRenameEnabled(true);
widget->setBaseName(imageLabel);
widget->setMRMLScene(this->CLIModuleWidget->mrmlScene());

QObject::connect(this->CLIModuleWidget, SIGNAL(mrmlSceneChanged(vtkMRMLScene*)),
widget, SLOT(setMRMLScene(vtkMRMLScene*)));

INSTANCIATE_WIDGET_VALUE_WRAPPER(Image, imageName, imageLabel, widget);
INSTANCIATE_WIDGET_VALUE_WRAPPER(Image, imageName, lbl, widget);

widget->setBaseName(lbl);

return widget;
}
Expand Down Expand Up @@ -992,7 +995,7 @@ qSlicerCLIModuleUIHelper::~qSlicerCLIModuleUIHelper()
}

//-----------------------------------------------------------------------------
QWidget* qSlicerCLIModuleUIHelper::createTagWidget(const ModuleParameter& moduleParameter)
QWidget* qSlicerCLIModuleUIHelper::createTagWidget(const QString moduleName, const ModuleParameter& moduleParameter)
{
Q_D(qSlicerCLIModuleUIHelper);

Expand Down Expand Up @@ -1038,7 +1041,7 @@ QWidget* qSlicerCLIModuleUIHelper::createTagWidget(const ModuleParameter& module
}
else if (moduleParameter.GetTag() == "image")
{
widget = d->createImageTagWidget(moduleParameter);
widget = d->createImageTagWidget(moduleName, moduleParameter);
}
else if (moduleParameter.GetTag() == "geometry")
{
Expand Down Expand Up @@ -1074,7 +1077,8 @@ QWidget* qSlicerCLIModuleUIHelper::createTagWidget(const ModuleParameter& module

if (widget)
{
QString description = QString::fromStdString(moduleParameter.GetDescription());
QString description = QCoreApplication::translate(moduleName.toLatin1(), moduleParameter.GetDescription().c_str());

widget->setToolTip(description);
QString widgetName = QString::fromStdString(moduleParameter.GetName());
widget->setObjectName(widgetName);
Expand Down
2 changes: 1 addition & 1 deletion Base/QTCLI/qSlicerCLIModuleUIHelper.h
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ class Q_SLICER_BASE_QTCLI_EXPORT qSlicerCLIModuleUIHelper: public QObject
/// The caller is responsible to delete the widget.
/// Note also that if the widget is added to a layout, Qt will
/// be responsible to delete the widget.
QWidget* createTagWidget(const ModuleParameter& moduleParameter);
QWidget* createTagWidget(const QString moduleName, const ModuleParameter& moduleParameter);

///
/// Update \a commandLineModuleNode properties using value entered from the UI
Expand Down
14 changes: 11 additions & 3 deletions Base/QTCLI/qSlicerCLIModuleWidget.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,11 @@ void qSlicerCLIModuleWidgetPrivate::setupUi(qSlicerWidget* widget)
this->logic()->GetDefaultModuleDescription().GetTitle());
this->ModuleCollapsibleButton->setText(title);

QString type = QString::fromStdString(
this->logic()->GetDefaultModuleDescription().GetType());
qSlicerAbstractCoreModule* coreModule = const_cast<qSlicerAbstractCoreModule*>(q->module());


this->MRMLCommandLineModuleNodeSelector->setBaseName(title);
/// Use the title of the CLI to filter all the command line module node
/// It is not very robust but there shouldn't be twice the same title.
Expand Down Expand Up @@ -289,14 +294,17 @@ void qSlicerCLIModuleWidgetPrivate::addParameter(QFormLayout* _layout,
const ModuleParameter& moduleParameter)
{
Q_ASSERT(_layout);
Q_Q(qSlicerCLIModuleWidget);

if (moduleParameter.GetHidden() == "true")
{
return;
}

QString _label = QString::fromStdString(moduleParameter.GetLabel());
QString description = QString::fromStdString(moduleParameter.GetDescription());
qSlicerAbstractCoreModule* coreModule = const_cast<qSlicerAbstractCoreModule*>(q->module());
QString moduleName = coreModule->name();
QString _label = QCoreApplication::translate(moduleName.toLatin1(), moduleParameter.GetLabel().c_str());
QString description = QCoreApplication::translate(moduleName.toLatin1(), moduleParameter.GetDescription().c_str());

// TODO Parameters with flags can support the None node because they are optional
//int noneEnabled = 0;
Expand All @@ -308,7 +316,7 @@ void qSlicerCLIModuleWidgetPrivate::addParameter(QFormLayout* _layout,
QLabel* widgetLabel = new QLabel(_label);
widgetLabel->setToolTip(description);

QWidget * widget = this->CLIModuleUIHelper->createTagWidget(moduleParameter);
QWidget * widget = this->CLIModuleUIHelper->createTagWidget(coreModule->name(), moduleParameter);

_layout->addRow(widgetLabel, widget);
}
Expand Down

0 comments on commit bdce361

Please sign in to comment.