summaryrefslogtreecommitdiffabout
path: root/kaddressbook/views/kaddressbooktableview.cpp
Unidiff
Diffstat (limited to 'kaddressbook/views/kaddressbooktableview.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--kaddressbook/views/kaddressbooktableview.cpp49
1 files changed, 49 insertions, 0 deletions
diff --git a/kaddressbook/views/kaddressbooktableview.cpp b/kaddressbook/views/kaddressbooktableview.cpp
index ab11e2a..12f7c27 100644
--- a/kaddressbook/views/kaddressbooktableview.cpp
+++ b/kaddressbook/views/kaddressbooktableview.cpp
@@ -109,12 +109,61 @@ void KAddressBookTableView::reconstructListView()
109 mListView->setSorting( 0, true ); 109 mListView->setSorting( 0, true );
110 mainLayout->addWidget( mListView ); 110 mainLayout->addWidget( mListView );
111 mainLayout->activate(); 111 mainLayout->activate();
112 mListView->show(); 112 mListView->show();
113} 113}
114 114
115void KAddressBookTableView::doSearch( const QString& s, KABC::Field *field )
116{
117 mListView->clear();
118 if ( s.isEmpty() || s == "*" ) {
119 refresh();
120 return;
121 }
122 QString pattern = s.lower()+"*";
123 QRegExp re;
124 re.setWildcard(true); // most people understand these better.
125 re.setCaseSensitive(false);
126 re.setPattern( pattern );
127 if (!re.isValid())
128 return;
129 KABC::Addressee::List addresseeList = addressees();
130 KABC::Addressee::List::Iterator it;
131 if ( field ) {
132 for (it = addresseeList.begin(); it != addresseeList.end(); ++it ) {
133#if QT_VERSION >= 300
134 if (re.search(field->value( *it ).lower()) != -1)
135#else
136 if (re.match(field->value( *it ).lower()) != -1)
137#endif
138 ContactListViewItem *item = new ContactListViewItem(*it, mListView, addressBook(), fields());
139
140 }
141 } else {
142 KABC::Field::List fieldList = fields();
143 KABC::Field::List::ConstIterator fieldIt;
144 for (it = addresseeList.begin(); it != addresseeList.end(); ++it ) {
145 for ( fieldIt = fieldList.begin(); fieldIt != fieldList.end(); ++fieldIt ) {
146#if QT_VERSION >= 300
147 if (re.search((*fieldIt)->value( *it ).lower()) != -1)
148#else
149 if (re.match((*fieldIt)->value( *it ).lower()) != -1)
150#endif
151 {
152 ContactListViewItem *item = new ContactListViewItem(*it, mListView, addressBook(), fields());
153 continue;
154 }
155 }
156 }
157 }
158 // Sometimes the background pixmap gets messed up when we add lots
159 // of items.
160 mListView->repaint();
161 emit selected(QString::null);
162
163}
115void KAddressBookTableView::writeConfig(KConfig *config) 164void KAddressBookTableView::writeConfig(KConfig *config)
116{ 165{
117 KAddressBookView::writeConfig(config); 166 KAddressBookView::writeConfig(config);
118 167
119 mListView->saveLayout(config, config->group()); 168 mListView->saveLayout(config, config->group());
120} 169}