00001 #include "datebookweeklstevent.h"
00002 #include "datebooktypes.h"
00003
00004 #include <opie2/odebug.h>
00005
00006 #include <qpe/ir.h>
00007
00008 #include <qstring.h>
00009 #include <qpopupmenu.h>
00010
00011 DateBookWeekLstEvent::DateBookWeekLstEvent(const EffectiveEvent &ev,
00012 int weeklistviewconfig,
00013 QWidget* parent,
00014 const char* name,
00015 WFlags fl ) : OClickableLabel(parent,name,fl), event(ev)
00016 {
00017
00018 QString s,start,middle,end,day;
00019
00020 odebug << "weeklistviewconfig=" << weeklistviewconfig << oendl;
00021 if(weeklistviewconfig==NONE) {
00022
00023
00024
00025
00026 } else if(weeklistviewconfig==NORMAL) {
00027 start.sprintf("%.2d:%.2d",ev.start().hour(),ev.start().minute());
00028 middle.sprintf(" |---");
00029 end.sprintf("__|__");
00030 day.sprintf("%.2d:%.2d",ev.start().hour(),ev.start().minute());
00031 } else if(weeklistviewconfig==EXTENDED) {
00032 start.sprintf("%.2d:%.2d-",ev.start().hour(),ev.start().minute());
00033 middle.sprintf("<--->");
00034 end.sprintf("-%.2d:%.2d",ev.end().hour(),ev.end().minute());
00035 day.sprintf("%.2d:%.2d-%.2d:%.2d",ev.start().hour(),ev.start().minute(),ev.end().hour(),ev.end().minute());
00036 }
00037
00038 if(ev.event().type() == Event::Normal) {
00039 if(ev.startDate()==ev.date() && ev.endDate()==ev.date()) {
00040 s=day;
00041 } else if(ev.startDate()==ev.date()) {
00042 s=start;
00043 } else if(ev.endDate()==ev.date()) {
00044 s=end;
00045 } else {
00046 s=middle;
00047 }
00048 } else {
00049 s="";
00050 }
00051 setText(QString(s) + " " + ev.description());
00052
00053 setAlignment( int( QLabel::WordBreak | QLabel::AlignLeft ) );
00054 }
00055 void DateBookWeekLstEvent::editMe() {
00056 emit editEvent(event.event());
00057 }
00058 void DateBookWeekLstEvent::duplicateMe()
00059 {
00060 emit duplicateEvent(event.event());
00061 }
00062 void DateBookWeekLstEvent::deleteMe()
00063 {
00064 emit removeEvent(event.event());
00065 emit redraw();
00066 }
00067 void DateBookWeekLstEvent::beamMe()
00068 {
00069 emit beamEvent( event.event() );
00070 }
00071 void DateBookWeekLstEvent::mousePressEvent( QMouseEvent *e )
00072 {
00073 if (!event.event().isValidUid()) {
00074
00075 return;
00076 }
00077 popmenue = new QPopupMenu;
00078
00079 popmenue->insertItem( tr( "Edit" ), this, SLOT(editMe()));
00080 popmenue->insertItem( tr( "Duplicate" ), this, SLOT(duplicateMe()));
00081 popmenue->insertItem( tr( "Delete" ), this, SLOT(deleteMe()));
00082 if(Ir::supported())
00083 popmenue->insertItem( tr( "Beam" ), this, SLOT(beamMe()));
00084 popmenue->popup( mapToGlobal( e->pos() ));
00085 }