PartDesign: add/remove features to list view in linear pattern panel
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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 && (
|
||||
@@ -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);
|
||||
|
||||
@@ -190,6 +190,8 @@ protected:
|
||||
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;
|
||||
|
||||
Reference in New Issue
Block a user