| 770 | } |
| 771 | |
| 772 | std::shared_ptr<ItemListOwnerModel<std::string>> |
| 773 | UniversalLocator::openBuildModel( const std::string& pattern ) { |
| 774 | if ( nullptr == mApp->getProjectBuildManager() ) |
| 775 | return ItemListOwnerModel<std::string>::create( {} ); |
| 776 | const auto& builds = mApp->getProjectBuildManager()->getBuilds(); |
| 777 | std::vector<std::string> buildNames; |
| 778 | if ( builds.empty() ) |
| 779 | return ItemListOwnerModel<std::string>::create( {} ); |
| 780 | buildNames.reserve( builds.size() ); |
| 781 | for ( const auto& build : builds ) { |
| 782 | if ( pattern.empty() || String::icontains( build.first, pattern ) ) |
| 783 | buildNames.push_back( build.first ); |
| 784 | } |
| 785 | std::sort( buildNames.begin(), buildNames.end() ); |
| 786 | return ItemListOwnerModel<std::string>::create( buildNames ); |
| 787 | } |
| 788 | |
| 789 | void UniversalLocator::updateSwitchBuildTable() { |
| 790 | mLocateTable->setModel( openBuildModel( mLocateInput->getText().substr( 3 ).trim().toUtf8() ) ); |