summaryrefslogtreecommitdiff
path: root/core/pim/datebook/datebookday.cpp
Side-by-side diff
Diffstat (limited to 'core/pim/datebook/datebookday.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/datebook/datebookday.cpp29
1 files changed, 17 insertions, 12 deletions
diff --git a/core/pim/datebook/datebookday.cpp b/core/pim/datebook/datebookday.cpp
index 42f026a..5d472a6 100644
--- a/core/pim/datebook/datebookday.cpp
+++ b/core/pim/datebook/datebookday.cpp
@@ -292,48 +292,50 @@ void DateBookDay::dateChanged( int y, int m, int d )
dayView()->addSelection( ts );
selectedWidget = 0;
}
void DateBookDay::redraw()
{
if ( isUpdatesEnabled() )
relayoutPage();
}
void DateBookDay::getEvents()
{
widgetList.clear();
QValueList<EffectiveEvent> eventList = db->getEffectiveEvents( currDate, currDate );
QValueListIterator<EffectiveEvent> it;
for ( it = eventList.begin(); it != eventList.end(); ++it ) {
EffectiveEvent ev=*it;
if(!(ev.end().hour()==ev.start().hour() && ev.end().minute()==ev.start().minute())) { // Skip effective events with no duration. (i.e ending at 00:00)
DateBookDayWidget* w = new DateBookDayWidget( *it, this );
connect( w, SIGNAL( deleteMe( const Event & ) ),
this, SIGNAL( removeEvent( const Event & ) ) );
+ connect( w, SIGNAL( duplicateMe( const Event & ) ),
+ this, SIGNAL( duplicateEvent( const Event & ) ) );
connect( w, SIGNAL( editMe( const Event & ) ),
this, SIGNAL( editEvent( const Event & ) ) );
connect( w, SIGNAL( beamMe( const Event & ) ),
this, SIGNAL( beamEvent( const Event & ) ) );
widgetList.append( w );
}
}
}
static int place( const DateBookDayWidget *item, bool *used, int maxn )
{
int place = 0;
int start = item->event().start().hour();
QTime e = item->event().end();
int end = e.hour();
if ( e.minute() < 5 )
end--;
if ( end < start )
end = start;
while ( place < maxn ) {
bool free = TRUE;
int s = start;
while( s <= end ) {
@@ -699,60 +701,63 @@ void DateBookDayWidget::paintEvent( QPaintEvent *e )
}
if ( ev.event().hasRepeat() ) {
p.drawPixmap( width() - 16, y, Resource::loadPixmap( "repeat" ) );
d = 20;
y += 20;
}
QSimpleRichText rt( text, font() );
rt.setWidth( geom.width() - d - 6 );
rt.draw( &p, 7, 0, e->region(), colorGroup() );
}
void DateBookDayWidget::mousePressEvent( QMouseEvent *e )
{
DateBookDayWidget *item;
item = dateBook->getSelectedWidget();
if (item) item->update();
dateBook->setSelectedWidget(this);
update();
dateBook->repaint();
- QPopupMenu m;
- m.insertItem( tr( "Edit" ), 1 );
- m.insertItem( tr( "Delete" ), 2 );
- if(Ir::supported()) m.insertItem( tr( "Beam" ), 3 );
- int r = m.exec( e->globalPos() );
- if ( r == 1 ) {
- emit editMe( ev.event() );
- } else if ( r == 2 ) {
- emit deleteMe( ev.event() );
- } else if ( r == 3 ) {
- emit beamMe( ev.event() );
- }
+ QPopupMenu m;
+ m.insertItem( tr( "Edit" ), 1 );
+ m.insertItem( tr( "Duplicate" ), 4 );
+ m.insertItem( tr( "Delete" ), 2 );
+ if(Ir::supported()) m.insertItem( tr( "Beam" ), 3 );
+ int r = m.exec( e->globalPos() );
+ if ( r == 1 ) {
+ emit editMe( ev.event() );
+ } else if ( r == 2 ) {
+ emit deleteMe( ev.event() );
+ } else if ( r == 3 ) {
+ emit beamMe( ev.event() );
+ } else if ( r == 4 ) {
+ emit duplicateMe( ev.event() );
+ }
}
void DateBookDayWidget::setGeometry( const QRect &r )
{
geom = r;
setFixedSize( r.width()+1, r.height()+1 );
dateBook->dayView()->moveChild( this, r.x(), r.y()-1 );
show();
}
//---------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------
DateBookDayTimeMarker::DateBookDayTimeMarker( DateBookDay *db )
: QWidget( db->dayView()->viewport() ), dateBook( db )
{
setBackgroundMode( PaletteBase );
}
DateBookDayTimeMarker::~DateBookDayTimeMarker()
{
}