summaryrefslogtreecommitdiff
path: root/core/pim/osearch/datebooksearch.cpp
Side-by-side diff
Diffstat (limited to 'core/pim/osearch/datebooksearch.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/osearch/datebooksearch.cpp53
1 files changed, 45 insertions, 8 deletions
diff --git a/core/pim/osearch/datebooksearch.cpp b/core/pim/osearch/datebooksearch.cpp
index 7aabcea..5da7ae9 100644
--- a/core/pim/osearch/datebooksearch.cpp
+++ b/core/pim/osearch/datebooksearch.cpp
@@ -14,24 +14,40 @@
#include "eventitem.h"
+#include <qpe/resource.h>
+#include <qpe/config.h>
#include <opie/oevent.h>
+#include <opie/orecur.h>
#include <opie/odatebookaccess.h>
#include <qiconset.h>
-#include <qpe/resource.h>
+#include <qaction.h>
+#include <qdatetime.h>
+#include <qpopupmenu.h>
DatebookSearch::DatebookSearch(QListView* parent, QString name)
-: SearchGroup(parent, name)
+: SearchGroup(parent, name), _dates(0), _popupMenu(0)
{
- _dates = 0;
QIconSet is = Resource::loadIconSet( "datebook/DateBook" );
setPixmap( 0, is.pixmap( QIconSet::Small, true ) );
-
+ actionShowPastEvents = new QAction( QObject::tr("show past events"),QString::null, 0, 0, 0, true );
+ actionSearchInDates = new QAction( QObject::tr("search in dates"),QString::null, 0, 0, 0, true );
+ Config cfg( "osearch", Config::User );
+ cfg.setGroup( "datebook_settings" );
+ actionShowPastEvents->setOn( cfg.readBoolEntry( "show_past_events", false ) );
+ actionSearchInDates->setOn( cfg.readBoolEntry( "search_in_dates", true ) );
}
-
DatebookSearch::~DatebookSearch()
{
+ qDebug("SAVE DATEBOOK SEARCH CONFIG");
+ Config cfg( "osearch", Config::User );
+ cfg.setGroup( "datebook_settings" );
+ cfg.writeEntry( "show_past_events", actionShowPastEvents->isOn() );
+ cfg.writeEntry( "search_in_dates", actionSearchInDates->isOn() );
delete _dates;
+ delete _popupMenu;
+ delete actionShowPastEvents;
+ delete actionSearchInDates;
}
@@ -45,11 +61,32 @@ int DatebookSearch::search()
{
ORecordList<OEvent> results = _dates->matchRegexp(_search);
for (uint i = 0; i < results.count(); i++)
- new EventItem( this, new OEvent( results[i] ));
- return results.count();
+ insertItem( new OEvent( results[i] ) );
+ return _resultCount;
}
-void DatebookSearch::insertItem( void* )
+void DatebookSearch::insertItem( void *rec )
{
+ OEvent *ev = (OEvent*)rec;
+ if ( !actionShowPastEvents->isOn() &&
+ ev->endDateTime() < QDateTime::currentDateTime() &&
+ !ev->recurrence().doesRecur()
+ ) return;
+ if ( !actionSearchInDates->isOn() && (
+ ev->lastHitField() == Qtopia::StartDateTime ||
+ ev->lastHitField() == Qtopia::EndDateTime )
+ ) return;
+ new EventItem( this, ev );
+ _resultCount++;
+}
+QPopupMenu* DatebookSearch::popupMenu()
+{
+ if (!_popupMenu){
+ _popupMenu = new QPopupMenu( 0 );
+ actionShowPastEvents->addTo( _popupMenu );
+ actionSearchInDates->addTo( _popupMenu );
+ }
+ return _popupMenu;
}
+