Skip to content

Commit

Permalink
PartDesign: add/remove features to list view in linear pattern panel
Browse files Browse the repository at this point in the history
  • Loading branch information
wwmayer committed Feb 15, 2020
1 parent 902cd41 commit fa963d3
Show file tree
Hide file tree
Showing 4 changed files with 42 additions and 6 deletions.
22 changes: 20 additions & 2 deletions src/Mod/PartDesign/Gui/TaskLinearPatternParameters.cpp
Expand Up @@ -231,12 +231,30 @@ void TaskLinearPatternParameters::kickUpdateViewTimer() const
updateViewTimer->start();
}

void TaskLinearPatternParameters::addObject(App::DocumentObject* obj)
{
QString label = QString::fromUtf8(obj->Label.getValue());
QString objectName = QString::fromLatin1(obj->getNameInDocument());

QListWidgetItem* item = new QListWidgetItem();
item->setText(label);
item->setData(Qt::UserRole, objectName);
ui->listWidgetFeatures->addItem(item);
}

void TaskLinearPatternParameters::removeObject(App::DocumentObject* obj)
{
QString label = QString::fromUtf8(obj->Label.getValue());
removeItemFromListWidget(ui->listWidgetFeatures, label);
}

void TaskLinearPatternParameters::onSelectionChanged(const Gui::SelectionChanges& msg)
{
if (selectionMode!=none && msg.Type == Gui::SelectionChanges::AddSelection) {
if (selectionMode != none && msg.Type == Gui::SelectionChanges::AddSelection) {
if (originalSelected(msg)) {
exitSelectionMode();
} else {
}
else if (selectionMode == reference) {
// TODO check if this works correctly (2015-09-01, Fat-Zer)
exitSelectionMode();
std::vector<std::string> directions;
Expand Down
2 changes: 2 additions & 0 deletions src/Mod/PartDesign/Gui/TaskLinearPatternParameters.h
Expand Up @@ -69,6 +69,8 @@ private Q_SLOTS:
virtual void onFeatureDeleted(void);

protected:
virtual void addObject(App::DocumentObject*);
virtual void removeObject(App::DocumentObject*);
virtual void changeEvent(QEvent *e);
virtual void onSelectionChanged(const Gui::SelectionChanges& msg);
virtual void clearButtons();
Expand Down
22 changes: 18 additions & 4 deletions src/Mod/PartDesign/Gui/TaskTransformedParameters.cpp
Expand Up @@ -116,6 +116,14 @@ int TaskTransformedParameters::getUpdateViewTimeout() const
return 500;
}

void TaskTransformedParameters::addObject(App::DocumentObject*)
{
}

void TaskTransformedParameters::removeObject(App::DocumentObject*)
{
}

bool TaskTransformedParameters::originalSelected(const Gui::SelectionChanges& msg)
{
if (msg.Type == Gui::SelectionChanges::AddSelection && (
Expand All @@ -132,15 +140,21 @@ bool TaskTransformedParameters::originalSelected(const Gui::SelectionChanges& ms
std::vector<App::DocumentObject*> originals = pcTransformed->Originals.getValues();
std::vector<App::DocumentObject*>::iterator o = std::find(originals.begin(), originals.end(), selectedObject);
if (selectionMode == addFeature) {
if (o == originals.end())
if (o == originals.end()) {
originals.push_back(selectedObject);
else
addObject(selectedObject);
}
else {
return false; // duplicate selection
}
} else {
if (o != originals.end())
if (o != originals.end()) {
originals.erase(o);
else
removeObject(selectedObject);
}
else {
return false;
}
}
setupTransaction();
pcTransformed->Originals.setValues(originals);
Expand Down
2 changes: 2 additions & 0 deletions src/Mod/PartDesign/Gui/TaskTransformedParameters.h
Expand Up @@ -190,6 +190,8 @@ protected Q_SLOTS:
void checkVisibility();

protected:
virtual void addObject(App::DocumentObject*);
virtual void removeObject(App::DocumentObject*);
/** Notifies when the object is about to be removed. */
virtual void slotDeletedObject(const Gui::ViewProviderDocumentObject& Obj);
virtual void changeEvent(QEvent *e) = 0;
Expand Down

0 comments on commit fa963d3

Please sign in to comment.