diff --git a/src/Gui/DlgPropertyLink.cpp b/src/Gui/DlgPropertyLink.cpp index 3c21e93ca..aeb4d256f 100644 --- a/src/Gui/DlgPropertyLink.cpp +++ b/src/Gui/DlgPropertyLink.cpp @@ -93,6 +93,7 @@ void DlgPropertyLink::findObjects(bool on) QString docName = link[0]; QString objName = link[1]; QString parName = link[3]; + QString searchText = ui->searchBox->text(); App::Document* doc = App::GetApplication().getDocument((const char*)docName.toLatin1()); if (doc) { @@ -128,7 +129,13 @@ void DlgPropertyLink::findObjects(bool on) std::vector obj = doc->getObjectsOfType(baseType); for (std::vector::iterator it = obj.begin(); it != obj.end(); ++it) { Gui::ViewProvider* vp = Gui::Application::Instance->getViewProvider(*it); - if (vp) { + bool nameOk = true; + if (!searchText.isEmpty()) { + QString label = QString::fromUtf8((*it)->Label.getValue()); + if (!label.contains(searchText,Qt::CaseInsensitive)) + nameOk = false; + } + if (vp && nameOk) { // filter out the objects if (std::find(outList.begin(), outList.end(), *it) == outList.end()) { QListWidgetItem* item = new QListWidgetItem(ui->listWidget); @@ -148,4 +155,11 @@ void DlgPropertyLink::on_checkObjectType_toggled(bool on) findObjects(on); } +void DlgPropertyLink::on_searchBox_textChanged(const QString& search) +{ + ui->listWidget->clear(); + bool on = ui->checkObjectType->isChecked(); + findObjects(on); +} + #include "moc_DlgPropertyLink.cpp" diff --git a/src/Gui/DlgPropertyLink.h b/src/Gui/DlgPropertyLink.h index baf0b59be..a9bd36015 100644 --- a/src/Gui/DlgPropertyLink.h +++ b/src/Gui/DlgPropertyLink.h @@ -42,6 +42,7 @@ public: private Q_SLOTS: void on_checkObjectType_toggled(bool); + void on_searchBox_textChanged(const QString&); private: void findObjects(bool on); diff --git a/src/Gui/DlgPropertyLink.ui b/src/Gui/DlgPropertyLink.ui index 21a60e4e5..0766b5cad 100644 --- a/src/Gui/DlgPropertyLink.ui +++ b/src/Gui/DlgPropertyLink.ui @@ -14,17 +14,35 @@ Link - - - + + + + + Search + + + + + + + A search pattern to filter the results above + + + + + + Show all object types - + + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok