Don't include entries from "Backup" group in search results
git-svn-id: https://svn.code.sf.net/p/keepassx/code/trunk@223 b624d157-de02-0410-bad0-e51aec6abb33
This commit is contained in:
		
							parent
							
								
									e5e9cebc8a
								
							
						
					
					
						commit
						c451d571c2
					
				| 
						 | 
					@ -1696,23 +1696,40 @@ QList<IEntryHandle*> Kdb3Database::search(IGroupHandle* Group,const QString& sea
 | 
				
			||||||
	else
 | 
						else
 | 
				
			||||||
		SearchEntries=entries();
 | 
							SearchEntries=entries();
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
 | 
						IGroupHandle* backupGroup = NULL;
 | 
				
			||||||
 | 
						if (!Group){
 | 
				
			||||||
 | 
							QList<IGroupHandle*> allGroups = groups();
 | 
				
			||||||
 | 
							for (int i=0; i<allGroups.size(); i++){
 | 
				
			||||||
 | 
								if (allGroups[i]->parent()==NULL && allGroups[i]->title()=="Backup"){
 | 
				
			||||||
 | 
									backupGroup = allGroups[i];
 | 
				
			||||||
 | 
									break;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						QList<IEntryHandle*> ResultEntries;
 | 
				
			||||||
	for(int i=0; i<SearchEntries.size(); i++){
 | 
						for(int i=0; i<SearchEntries.size(); i++){
 | 
				
			||||||
 | 
							IGroupHandle* entryGroup = SearchEntries[i]->group();
 | 
				
			||||||
 | 
							while (entryGroup->parent())
 | 
				
			||||||
 | 
								entryGroup = entryGroup->parent();
 | 
				
			||||||
 | 
							if (entryGroup == backupGroup)
 | 
				
			||||||
 | 
								continue;
 | 
				
			||||||
 | 
							
 | 
				
			||||||
		bool match=false;
 | 
							bool match=false;
 | 
				
			||||||
		if(Fields[0])match=match||searchStringContains(search,SearchEntries[i]->title(),CaseSensitive,RegExp);
 | 
							if(Fields[0])match=match||searchStringContains(search,SearchEntries[i]->title(),CaseSensitive,RegExp);
 | 
				
			||||||
		if(Fields[1])match=match||searchStringContains(search,SearchEntries[i]->username(),CaseSensitive,RegExp);
 | 
							if(Fields[1])match=match||searchStringContains(search,SearchEntries[i]->username(),CaseSensitive,RegExp);
 | 
				
			||||||
		if(Fields[2])match=match||searchStringContains(search,SearchEntries[i]->url(),CaseSensitive,RegExp);
 | 
							if(Fields[2])match=match||searchStringContains(search,SearchEntries[i]->url(),CaseSensitive,RegExp);
 | 
				
			||||||
		SecString Password=SearchEntries[i]->password(); Password.unlock();
 | 
							SecString Password=SearchEntries[i]->password();
 | 
				
			||||||
 | 
							Password.unlock();
 | 
				
			||||||
		if(Fields[3])match=match||searchStringContains(search,Password.string(),CaseSensitive,RegExp);
 | 
							if(Fields[3])match=match||searchStringContains(search,Password.string(),CaseSensitive,RegExp);
 | 
				
			||||||
		Password.lock();
 | 
							Password.lock();
 | 
				
			||||||
		if(Fields[4])match=match||searchStringContains(search,SearchEntries[i]->comment(),CaseSensitive,RegExp);
 | 
							if(Fields[4])match=match||searchStringContains(search,SearchEntries[i]->comment(),CaseSensitive,RegExp);
 | 
				
			||||||
		if(Fields[5])match=match||searchStringContains(search,SearchEntries[i]->binaryDesc(),CaseSensitive,RegExp);
 | 
							if(Fields[5])match=match||searchStringContains(search,SearchEntries[i]->binaryDesc(),CaseSensitive,RegExp);
 | 
				
			||||||
		if(!match){
 | 
							if(match)
 | 
				
			||||||
			SearchEntries.removeAt(i);
 | 
								ResultEntries << SearchEntries[i];
 | 
				
			||||||
			i--;
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return SearchEntries;
 | 
						return ResultEntries;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void Kdb3Database::rebuildIndices(QList<StdGroup*>& list){
 | 
					void Kdb3Database::rebuildIndices(QList<StdGroup*>& list){
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -451,9 +451,6 @@
 | 
				
			||||||
                <height>23</height>
 | 
					                <height>23</height>
 | 
				
			||||||
               </size>
 | 
					               </size>
 | 
				
			||||||
              </property>
 | 
					              </property>
 | 
				
			||||||
              <property name="pixmap" >
 | 
					 | 
				
			||||||
               <pixmap/>
 | 
					 | 
				
			||||||
              </property>
 | 
					 | 
				
			||||||
              <property name="scaledContents" >
 | 
					              <property name="scaledContents" >
 | 
				
			||||||
               <bool>true</bool>
 | 
					               <bool>true</bool>
 | 
				
			||||||
              </property>
 | 
					              </property>
 | 
				
			||||||
| 
						 | 
					@ -507,9 +504,6 @@
 | 
				
			||||||
                <height>23</height>
 | 
					                <height>23</height>
 | 
				
			||||||
               </size>
 | 
					               </size>
 | 
				
			||||||
              </property>
 | 
					              </property>
 | 
				
			||||||
              <property name="pixmap" >
 | 
					 | 
				
			||||||
               <pixmap/>
 | 
					 | 
				
			||||||
              </property>
 | 
					 | 
				
			||||||
              <property name="scaledContents" >
 | 
					              <property name="scaledContents" >
 | 
				
			||||||
               <bool>true</bool>
 | 
					               <bool>true</bool>
 | 
				
			||||||
              </property>
 | 
					              </property>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -66,8 +66,8 @@ void KeepassGroupView::updateIcons(){
 | 
				
			||||||
void KeepassGroupView::showSearchResults(){
 | 
					void KeepassGroupView::showSearchResults(){
 | 
				
			||||||
	if(topLevelItem(topLevelItemCount()-1)!=SearchResultItem){
 | 
						if(topLevelItem(topLevelItemCount()-1)!=SearchResultItem){
 | 
				
			||||||
		addTopLevelItem(SearchResultItem);
 | 
							addTopLevelItem(SearchResultItem);
 | 
				
			||||||
		setCurrentItem(SearchResultItem);
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
						setCurrentItem(SearchResultItem);
 | 
				
			||||||
	emit searchResultsSelected();
 | 
						emit searchResultsSelected();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue