implemented Database as interface (pure virtual)

git-svn-id: https://svn.code.sf.net/p/keepassx/code/trunk@64 b624d157-de02-0410-bad0-e51aec6abb33
This commit is contained in:
tariq
2006-03-23 10:28:37 +00:00
parent 2bf3e5820c
commit 3c7d617599
20 changed files with 147 additions and 91 deletions

View File

@@ -104,9 +104,9 @@ Items.clear();
if(!db)return;
if(!GroupID)return;
CurrentGroup=GroupID;
for(int i=0;i<db->Entries.size();i++){
if(db->Entries[i].GroupID==GroupID)
setEntry(&db->Entries[i]);
for(int i=0;i<db->numEntries();i++){
if(db->entry(i).GroupID==GroupID)
setEntry(&db->entry(i));
}
}
@@ -115,9 +115,9 @@ IsSearchGroup=true;
clear();
Items.clear();
for(int j=0; j<results.size(); j++){
for(int i=0; i<db->Entries.size();i++){
if(db->Entries[i].sID == results[j])
setEntry(&db->Entries[i]);
for(int i=0; i<db->numEntries();i++){
if(db->entry(i).sID == results[j])
setEntry(&db->entry(i));
}
}
}

View File

@@ -41,7 +41,7 @@ public:
void updateColumns();
void refreshItems();
void showSearchResults(QList<Q_UINT32>& results);
PwDatabase* db;
Database* db;
vector<EntryViewItem*>Items;
QMenu *ContextMenu;
private:
@@ -76,4 +76,4 @@ CEntry* pEntry;
};
#endif
#endif

View File

@@ -209,29 +209,29 @@ void KeepassGroupView::updateItems(){
clear();
Items.clear();
for(int i=0; i<db->Groups.size();i++){
if(db->Groups[i].Level==0){
for(int i=0; i<db->numGroups();i++){
if(db->group(i).Level==0){
if(Items.size()) Items.push_back(new GroupViewItem(this,getLastSameLevelItem(0)));
else Items.push_back(new GroupViewItem(this));
Items.back()->setText(0,db->Groups[i].Name);
Items.back()->pGroup=&db->Groups[i];
Items.back()->setText(0,db->group(i).Name);
Items.back()->pGroup=&db->group(i);
}
else{
if(db->Groups[i].Level>db->Groups[i-1].Level){
Items.push_back(new GroupViewItem(Items.back(),getLastSameLevelItem(db->Groups[i].Level)));
Items.back()->setText(0,db->Groups[i].Name);
Items.back()->pGroup=&db->Groups[i];
if(db->group(i).Level>db->group(i-1).Level){
Items.push_back(new GroupViewItem(Items.back(),getLastSameLevelItem(db->group(i).Level)));
Items.back()->setText(0,db->group(i).Name);
Items.back()->pGroup=&db->group(i);
}
if(db->Groups[i].Level<=db->Groups[i-1].Level){
if(db->group(i).Level<=db->group(i-1).Level){
GroupItemItr j;
for(j=Items.end()-1;j!=Items.begin();j--){
if((*j)->pGroup->Level<db->Groups[i].Level)break;}
Items.push_back(new GroupViewItem((*j),getLastSameLevelItem(db->Groups[i].Level)));
Items.back()->setText(0,db->Groups[i].Name);
Items.back()->pGroup=&db->Groups[i];
if((*j)->pGroup->Level<db->group(i).Level)break;}
Items.push_back(new GroupViewItem((*j),getLastSameLevelItem(db->group(i).Level)));
Items.back()->setText(0,db->group(i).Name);
Items.back()->pGroup=&db->group(i);
}
}
Items.back()->setIcon(0,EntryIcons[db->Groups[i].ImageID]);
Items.back()->setIcon(0,EntryIcons[db->group(i).ImageID]);
}
for(int i=0;i<Items.size();i++){

View File

@@ -35,7 +35,7 @@ public:
void updateItems();
bool isSearchResultGroup(GroupViewItem* item);
void selectSearchGroup();
PwDatabase *db;
Database *db;
bool ShowSearchGroup; //needs a "updateItems()" after a change!
vector<GroupViewItem*>Items;
QMenu *ContextMenu;
@@ -77,4 +77,4 @@ CGroup* pGroup;
};
#endif
#endif