some work on the search function

git-svn-id: https://svn.code.sf.net/p/keepassx/code/trunk@31 b624d157-de02-0410-bad0-e51aec6abb33
This commit is contained in:
tariq
2006-01-31 22:38:53 +00:00
parent 3d8bcf2ee8
commit ca554494d2
8 changed files with 54 additions and 32 deletions

View File

@@ -26,7 +26,7 @@
#include <qregexp.h>
#include <qmessagebox.h>
CSearchDlg::CSearchDlg(CGroup* pGroup,QWidget* parent, const char* name, bool modal, Qt::WFlags fl)
CSearchDlg::CSearchDlg(PwDatabase* _db,CGroup* pGroup,QWidget* parent, const char* name, bool modal, Qt::WFlags fl)
: QDialog(parent,name, modal,fl)
{
setupUi(this);
@@ -42,6 +42,9 @@ checkBox_Password->setChecked(config.SearchOptions[4]);
checkBox_Comment->setChecked(config.SearchOptions[5]);
checkBox_URL->setChecked(config.SearchOptions[6]);
checkBox_Attachment->setChecked(config.SearchOptions[7]);
db=_db;
group=pGroup;
}
CSearchDlg::~CSearchDlg()
@@ -63,40 +66,40 @@ done(0);
void CSearchDlg::OnButtonSearch()
{
/*
Hits.clear();
txt=Edit_Search->text();
regexp=checkBox_regExp->isChecked();
if(txt==""){
QMessageBox::information(this,trUtf8("Hinweis"),trUtf8("Bitte geben Sie einen Suchbegriff ein."),"OK",0,0);
return;}
for(int i=0;i<pw->Entries.size();i++){
if(group){if(pw->Entries[i].GroupID != group->ID)continue;}
for(int i=0;i<db->Entries.size();i++){
if(group){if(db->Entries[i].GroupID != group->ID)continue;}
bool hit=false;
if(checkBox_Title->isChecked()) hit=hit||search(pw->Entries[i].Title);
if(checkBox_Username->isChecked()) hit=hit||search(pw->Entries[i].UserName);
if(checkBox_URL->isChecked()) hit=hit||search(pw->Entries[i].URL);
if(checkBox_Comment->isChecked()) hit=hit||search(pw->Entries[i].Additional);
if(checkBox_Attachment->isChecked()) hit=hit||search(pw->Entries[i].BinaryDesc);
if(checkBox_Password->isChecked()) hit=hit||search(pw->Entries[i].Password.getString());
pw->Entries[i].Password.delRef();
if(hit)hits.push_back(&pw->Entries[i]);
if(checkBox_Title->isChecked()) hit=hit||search(db->Entries[i].Title);
if(checkBox_Username->isChecked()) hit=hit||search(db->Entries[i].UserName);
if(checkBox_URL->isChecked()) hit=hit||search(db->Entries[i].URL);
if(checkBox_Comment->isChecked()) hit=hit||search(db->Entries[i].Additional);
if(checkBox_Attachment->isChecked()) hit=hit||search(db->Entries[i].BinaryDesc);
if(checkBox_Password->isChecked()) hit=hit||search(db->Entries[i].Password.getString());
db->Entries[i].Password.delRef();
if(hit)Hits.push_back(db->Entries[i].sID);
}
*/
done(1);
}
/*
bool CSearchDlg::search(QString& str){
if(regexp){
QRegExp exp(txt,checkBox_Cs->isChecked());
if(str.contains(exp)==0)return false;}
else{
if(str.contains(txt,checkBox_Cs->isChecked())==0)return false;}
return true;
}*/
/*$SPECIALIZATION$*/
}

View File

@@ -27,28 +27,21 @@ class CSearchDlg : public QDialog, public Ui_Search_Dlg
{
Q_OBJECT
public:
CSearchDlg(CGroup* pGroup=NULL,QWidget* parent = 0, const char* name = 0,
CSearchDlg(PwDatabase* _db, CGroup* pGroup=NULL,QWidget* parent = 0, const char* name = 0,
bool modal = FALSE, Qt::WFlags fl = 0 );
~CSearchDlg();
/*$PUBLIC_FUNCTIONS$*/
public slots:
/*$PUBLIC_SLOTS$*/
protected:
/*$PROTECTED_FUNCTIONS$*/
protected slots:
/*$PROTECTED_SLOTS$*/
QList<Q_UINT32> Hits;
public slots:
virtual void OnButtonClose();
public slots:
virtual void OnButtonSearch();
private:
QString txt;
CGroup* group;
bool regexp;
PwDatabase* db;
bool search(QString& str);
};
#endif