PD: harmonize API of view provider classes

* add virtual method featureName() to ViewProviderTransformed
* add featureIcon() to ViewProviderTransformed and ViewProviderDressUp
This commit is contained in:
wmayer
2023-04-24 12:25:04 +02:00
parent 217f3c22f2
commit fa8bdfd550
16 changed files with 65 additions and 13 deletions

View File

@@ -55,7 +55,7 @@ using namespace Gui;
/* TRANSLATOR PartDesignGui::TaskDressUpParameters */
TaskDressUpParameters::TaskDressUpParameters(ViewProviderDressUp *DressUpView, bool selectEdges, bool selectFaces, QWidget *parent)
: TaskBox(Gui::BitmapFactory().pixmap((std::string("PartDesign_") + DressUpView->featureName()).c_str()),
: TaskBox(Gui::BitmapFactory().pixmap(DressUpView->featureIcon().c_str()),
DressUpView->menuName,
true,
parent)

View File

@@ -53,7 +53,7 @@ using namespace Gui;
/* TRANSLATOR PartDesignGui::TaskTransformedParameters */
TaskTransformedParameters::TaskTransformedParameters(ViewProviderTransformed *TransformedView, QWidget *parent)
: TaskBox(Gui::BitmapFactory().pixmap((std::string("PartDesign_") + TransformedView->featureName).c_str()),
: TaskBox(Gui::BitmapFactory().pixmap(TransformedView->featureIcon().c_str()),
TransformedView->menuName, true, parent)
, proxy(nullptr)
, TransformedView(TransformedView)

View File

@@ -58,6 +58,11 @@ const std::string & ViewProviderDressUp::featureName() const {
return name;
}
std::string ViewProviderDressUp::featureIcon() const
{
return std::string("PartDesign_") + featureName();
}
bool ViewProviderDressUp::setEdit(int ModNum) {
if (ModNum == ViewProvider::Default ) {

View File

@@ -55,6 +55,7 @@ public:
* Should be reimplemented in the successor.
*/
virtual const std::string & featureName() const;
std::string featureIcon() const;
QString menuName;
protected:

View File

@@ -33,3 +33,9 @@ PROPERTY_SOURCE(PartDesignGui::ViewProviderLinearPattern,PartDesignGui::ViewProv
TaskDlgFeatureParameters *ViewProviderLinearPattern::getEditDialog() {
return new TaskDlgLinearPatternParameters (this);
}
const std::string & ViewProviderLinearPattern::featureName() const
{
static const std::string name = "LinearPattern";
return name;
}

View File

@@ -34,10 +34,11 @@ class PartDesignGuiExport ViewProviderLinearPattern : public ViewProviderTransfo
PROPERTY_HEADER_WITH_OVERRIDE(PartDesignGui::ViewProviderLinearPattern);
public:
ViewProviderLinearPattern()
{ featureName = std::string("LinearPattern");
menuName = tr("LinearPattern parameters");
{ menuName = tr("LinearPattern parameters");
sPixmap = "PartDesign_LinearPattern.svg"; }
const std::string & featureName() const override;
protected:
/// Returns a newly create dialog for the part to be placed in the task view
TaskDlgFeatureParameters *getEditDialog() override;

View File

@@ -33,3 +33,9 @@ PROPERTY_SOURCE(PartDesignGui::ViewProviderMirrored,PartDesignGui::ViewProviderT
TaskDlgFeatureParameters *ViewProviderMirrored::getEditDialog() {
return new TaskDlgMirroredParameters (this);
}
const std::string & ViewProviderMirrored::featureName() const
{
static const std::string name = "Mirrored";
return name;
}

View File

@@ -34,11 +34,12 @@ class PartDesignGuiExport ViewProviderMirrored : public ViewProviderTransformed
PROPERTY_HEADER_WITH_OVERRIDE(PartDesignGui::ViewProviderMirrored);
public:
ViewProviderMirrored() {
featureName = std::string("Mirrored");
menuName = tr("Mirrored parameters");
sPixmap = "PartDesign_Mirrored.svg";
}
const std::string & featureName() const override;
protected:
/// Returns a newly create dialog for the part to be placed in the task view
TaskDlgFeatureParameters *getEditDialog() override;

View File

@@ -37,9 +37,15 @@ TaskDlgFeatureParameters *ViewProviderMultiTransform::getEditDialog() {
return new TaskDlgMultiTransformParameters (this);
}
const std::string & ViewProviderMultiTransform::featureName() const
{
static const std::string name = "MultiTransform";
return name;
}
void ViewProviderMultiTransform::setupContextMenu(QMenu* menu, QObject* receiver, const char* member)
{
this->addDefaultAction(menu, QObject::tr("Edit %1").arg(QString::fromStdString(featureName)));
this->addDefaultAction(menu, QObject::tr("Edit %1").arg(QString::fromStdString(featureName())));
PartDesignGui::ViewProvider::setupContextMenu(menu, receiver, member); // clazy:exclude=skipped-base-method
}

View File

@@ -34,11 +34,11 @@ class PartDesignGuiExport ViewProviderMultiTransform : public ViewProviderTransf
PROPERTY_HEADER_WITH_OVERRIDE(PartDesignGui::ViewProviderMultiTransform);
public:
ViewProviderMultiTransform() {
featureName = std::string("MultiTransform");
menuName = tr("MultiTransform parameters");
sPixmap = "PartDesign_MultiTransform.svg";
}
const std::string & featureName() const override;
std::vector<App::DocumentObject*> claimChildren() const override;
void setupContextMenu(QMenu*, QObject*, const char*) override;

View File

@@ -32,3 +32,9 @@ PROPERTY_SOURCE(PartDesignGui::ViewProviderPolarPattern,PartDesignGui::ViewProvi
TaskDlgFeatureParameters *ViewProviderPolarPattern::getEditDialog() {
return new TaskDlgPolarPatternParameters (this);
}
const std::string & ViewProviderPolarPattern::featureName() const
{
static const std::string name = "PolarPattern";
return name;
}

View File

@@ -34,11 +34,12 @@ class PartDesignGuiExport ViewProviderPolarPattern : public ViewProviderTransfor
PROPERTY_HEADER_WITH_OVERRIDE(PartDesignGui::ViewProviderPolarPattern);
public:
ViewProviderPolarPattern() {
featureName = std::string("PolarPattern");
menuName = tr("PolarPattern parameters");
sPixmap = "PartDesign_PolarPattern.svg";
}
const std::string & featureName() const override;
protected:
/// Returns a newly create dialog for the part to be placed in the task view
TaskDlgFeatureParameters *getEditDialog() override;

View File

@@ -33,3 +33,9 @@ PROPERTY_SOURCE(PartDesignGui::ViewProviderScaled,PartDesignGui::ViewProviderTra
TaskDlgFeatureParameters *ViewProviderScaled::getEditDialog() {
return new TaskDlgScaledParameters (this);
}
const std::string & ViewProviderScaled::featureName() const
{
static const std::string name = "Scaled";
return name;
}

View File

@@ -34,11 +34,12 @@ class PartDesignGuiExport ViewProviderScaled : public ViewProviderTransformed
PROPERTY_HEADER_WITH_OVERRIDE(PartDesignGui::ViewProviderScaled);
public:
ViewProviderScaled() {
featureName = std::string("Scaled");
menuName = tr("Scaled parameters");
sPixmap = "PartDesign_Scaled.svg";
}
const std::string & featureName() const override;
protected:
/// Returns a newly create dialog for the part to be placed in the task view
TaskDlgFeatureParameters *getEditDialog() override;

View File

@@ -59,10 +59,21 @@ using namespace PartDesignGui;
PROPERTY_SOURCE(PartDesignGui::ViewProviderTransformed,PartDesignGui::ViewProvider)
const std::string & ViewProviderTransformed::featureName() const
{
static const std::string name = "undefined";
return name;
}
std::string ViewProviderTransformed::featureIcon() const
{
return std::string("PartDesign_") + featureName();
}
void ViewProviderTransformed::setupContextMenu(QMenu* menu, QObject* receiver, const char* member)
{
QAction* act;
act = menu->addAction(QObject::tr("Edit %1").arg(QString::fromStdString(featureName)), receiver, member);
act = menu->addAction(QObject::tr("Edit %1").arg(QString::fromStdString(featureName())), receiver, member);
act->setData(QVariant((int)ViewProvider::Default));
PartDesignGui::ViewProvider::setupContextMenu(menu, receiver, member);
}

View File

@@ -37,11 +37,14 @@ class PartDesignGuiExport ViewProviderTransformed : public ViewProvider
public:
/// constructor
ViewProviderTransformed()
: featureName("undefined"), pcRejectedRoot(nullptr) {}
: pcRejectedRoot(nullptr) {}
/// destructor
~ViewProviderTransformed() override
{}
// The feature name of the subclass
virtual const std::string & featureName() const;
std::string featureIcon() const;
void setupContextMenu(QMenu*, QObject*, const char*) override;
bool onDelete(const std::vector<std::string> &) override;
@@ -49,8 +52,6 @@ public:
/// signals if the transformation contains errors
boost::signals2::signal<void (QString msg)> signalDiagnosis;
// The feature name of the subclass
std::string featureName;
// Name of menu dialog
QString menuName;