From 53f58fd669283cc6a8d441de2eb02a6e01128185 Mon Sep 17 00:00:00 2001 From: Chris Hennes Date: Fri, 15 Apr 2022 12:03:20 -0500 Subject: [PATCH] GUI: Re-add button to object selection The button was inadvertently lost in a recent PR. This commit adds it back. --- src/Gui/DlgObjectSelection.cpp | 20 ++++++++++++++++++++ src/Gui/DlgObjectSelection.h | 6 +++++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/src/Gui/DlgObjectSelection.cpp b/src/Gui/DlgObjectSelection.cpp index e6de8139d5..efe75080c1 100644 --- a/src/Gui/DlgObjectSelection.cpp +++ b/src/Gui/DlgObjectSelection.cpp @@ -141,6 +141,15 @@ void DlgObjectSelection::init(const std::vector &objs, } onItemSelectionChanged(); + /** + * create useOriginalsBtn and add to the button box + * tried adding to .ui file, but could never get the + * formatting exactly the way I wanted it. -- + */ + useOriginalsBtn = new QPushButton(tr("&Use Original Selections")); + useOriginalsBtn->setToolTip(tr("Ignore dependencies and proceed with objects\noriginally selected prior to opening this dialog")); + ui->buttonBox->addButton(useOriginalsBtn, QDialogButtonBox::ResetRole); + connect(ui->treeWidget, SIGNAL(itemChanged(QTreeWidgetItem*,int)), this, SLOT(onObjItemChanged(QTreeWidgetItem*,int))); connect(ui->depList, SIGNAL(itemChanged(QTreeWidgetItem*,int)), @@ -149,6 +158,8 @@ void DlgObjectSelection::init(const std::vector &objs, this, SLOT(onDepItemChanged(QTreeWidgetItem*,int))); connect(ui->treeWidget, SIGNAL(itemSelectionChanged()), this, SLOT(onItemSelectionChanged())); + connect(useOriginalsBtn, SIGNAL(clicked()), + this, SLOT(onUseOriginalsBtnClicked())); connect(ui->buttonBox, SIGNAL(accepted()), this, SLOT(accept())); connect(ui->buttonBox, SIGNAL(rejected()), this, SLOT(reject())); @@ -321,6 +332,10 @@ void DlgObjectSelection::setItemState(App::DocumentObject *obj, } std::vector DlgObjectSelection::getSelections(SelectionOptions options) const { + + if (returnOriginals) + return initSels; + std::vector res; Base::Flags flags(options); if (!flags.testFlag(SelectionOptions::Invert)) { @@ -592,6 +607,11 @@ void DlgObjectSelection::onItemSelectionChanged() { ui->inList->setSortingEnabled(true); } +void DlgObjectSelection::onUseOriginalsBtnClicked() { + returnOriginals = true; + QDialog::accept(); +} + void DlgObjectSelection::accept() { QDialog::accept(); } diff --git a/src/Gui/DlgObjectSelection.h b/src/Gui/DlgObjectSelection.h index b1e5108dbc..037287882d 100644 --- a/src/Gui/DlgObjectSelection.h +++ b/src/Gui/DlgObjectSelection.h @@ -101,6 +101,7 @@ private Q_SLOTS: void checkItemChanged(); void onAutoDeps(bool); void onItemExpanded(QTreeWidgetItem *item); + void onUseOriginalsBtnClicked(); private: QTreeWidgetItem *getItem(App::DocumentObject *obj, @@ -124,7 +125,10 @@ private: std::map depMap; std::map inMap; std::map itemChanged; - QTreeWidgetItem *allItem = nullptr; + QTreeWidgetItem *allItem = nullptr; + + QPushButton* useOriginalsBtn; + bool returnOriginals = false; QTimer timer; ParameterGrp::handle hGrp;