summaryrefslogtreecommitdiffabout
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--korganizer/calendarview.cpp17
-rw-r--r--korganizer/calendarview.h4
-rw-r--r--korganizer/koagenda.cpp60
-rw-r--r--korganizer/koagenda.h6
-rw-r--r--korganizer/koagendaview.cpp19
-rw-r--r--korganizer/koagendaview.h3
-rw-r--r--korganizer/koeditorgeneraltodo.cpp13
-rw-r--r--korganizer/koviewmanager.cpp9
8 files changed, 114 insertions, 17 deletions
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp
index 257a4dd..035d630 100644
--- a/korganizer/calendarview.cpp
+++ b/korganizer/calendarview.cpp
@@ -2648,3 +2648,6 @@ void CalendarView::newEvent(QDate dt)
}
-
+void CalendarView::newEvent(QDateTime fromHint, QDateTime toHint)
+{
+ newEvent(fromHint, toHint, false);
+}
void CalendarView::newEvent(QDateTime fromHint, QDateTime toHint, bool allDay)
@@ -2686,8 +2689,7 @@ void CalendarView::todoDeleted()
-
-void CalendarView::newTodo()
+void CalendarView::newTodoDateTime( QDateTime dt, bool allday )
{
-
+ qDebug("datetime ");
showTodoEditor();
- mTodoEditor->newTodo(QDateTime::currentDateTime().addDays(7),0,true);
+ mTodoEditor->newTodo(dt,0,allday);
if ( mFilterView->filtersEnabled() ) {
@@ -2702,2 +2704,7 @@ void CalendarView::newTodo()
+void CalendarView::newTodo()
+{
+ newTodoDateTime( QDateTime(),true );
+}
+
void CalendarView::newSubTodo()
diff --git a/korganizer/calendarview.h b/korganizer/calendarview.h
index c8d6bdd..7c59a8d 100644
--- a/korganizer/calendarview.h
+++ b/korganizer/calendarview.h
@@ -227,3 +227,4 @@ class CalendarView : public KOrg::CalendarViewBase, public KCal::Calendar::Obser
* make the event take all day. */
- void newEvent(QDateTime, QDateTime, bool allDay = false);
+ void newEvent(QDateTime, QDateTime, bool allDay );
+ void newEvent(QDateTime, QDateTime);
void newEvent(QDateTime fh);
@@ -262,2 +263,3 @@ class CalendarView : public KOrg::CalendarViewBase, public KCal::Calendar::Obser
void newTodo();
+ void newTodoDateTime(QDateTime, bool allday);
/** create new todo with a parent todo */
diff --git a/korganizer/koagenda.cpp b/korganizer/koagenda.cpp
index 7e0b216..73ee5cb 100644
--- a/korganizer/koagenda.cpp
+++ b/korganizer/koagenda.cpp
@@ -170,2 +170,13 @@ KOAgenda::KOAgenda(int columns,int rows,int rowSize,QWidget *parent,
{
+ mNewItemPopup = new QPopupMenu( this );
+ connect ( mNewItemPopup, SIGNAL (activated ( int ) ), this, SLOT ( newItem(int)) );
+ QString pathString = "";
+ if ( !KOPrefs::instance()->mToolBarMiniIcons ) {
+ if ( QApplication::desktop()->width() < 480 )
+ pathString += "icons16/";
+ } else
+ pathString += "iconsmini/";
+
+ mNewItemPopup->insertItem ( SmallIcon( pathString +"newevent" ), i18n("New Event..."), 1 );
+ mNewItemPopup->insertItem ( SmallIcon( pathString +"newtodo" ), i18n("New Todo..."),2 );
@@ -189,3 +200,12 @@ KOAgenda::KOAgenda(int columns,QWidget *parent,const char *name,WFlags f) :
{
-
+ mNewItemPopup = new QPopupMenu( this );
+ connect ( mNewItemPopup, SIGNAL (activated ( int ) ), this, SLOT ( newItem(int)) );
+ QString pathString = "";
+ if ( !KOPrefs::instance()->mToolBarMiniIcons ) {
+ if ( QApplication::desktop()->width() < 480 )
+ pathString += "icons16/";
+ } else
+ pathString += "iconsmini/";
+ mNewItemPopup->insertItem ( SmallIcon( pathString +"newevent" ), i18n("New Event..."),1 );
+ mNewItemPopup->insertItem ( SmallIcon( pathString +"newtodo" ), i18n("New Todo..."),2 );
blockResize = false;
@@ -420,2 +440,17 @@ bool KOAgenda::eventFilter_mouse(QObject *object, QMouseEvent *me)
mActionItem = 0;
+ if (me->button() == RightButton ) {
+ blockNewEvent = true;
+ qDebug("right ");
+ int x,y;
+ viewportToContents(viewportPos.x(),viewportPos.y(),x,y);
+ int gx,gy;
+ contentsToGrid(x,y,gx,gy);
+ mStartCellX = gx;
+ mStartCellY = gy;
+ mCurrentCellX = gx;
+ mCurrentCellY = gy;
+ mNewItemPopup->popup( viewport()->mapToGlobal( me->pos() ) );
+
+ } else {
+ blockNewEvent = false;
setCursor(arrowCursor);
@@ -423,2 +458,3 @@ bool KOAgenda::eventFilter_mouse(QObject *object, QMouseEvent *me)
}
+ }
break;
@@ -458,3 +494,7 @@ bool KOAgenda::eventFilter_mouse(QObject *object, QMouseEvent *me)
} else if ( mActionType == SELECT ) {
- endSelectAction();
+ if (me->button() == RightButton ) {
+
+ } else {
+ endSelectAction( !blockNewEvent );
+ }
}
@@ -522,2 +562,12 @@ bool KOAgenda::eventFilter_mouse(QObject *object, QMouseEvent *me)
+void KOAgenda::newItem( int item )
+{
+ qDebug("new %d ", item);
+ if ( item == 1 ) { //new event
+ newEventSignal(mStartCellX ,mStartCellY );
+ }
+ if ( item == 2 ) { //new event
+ newTodoSignal(mStartCellX ,mStartCellY );
+ }
+}
void KOAgenda::startSelectAction(QPoint viewportPos)
@@ -611,3 +661,3 @@ void KOAgenda::performSelectAction(QPoint viewportPos)
-void KOAgenda::endSelectAction()
+void KOAgenda::endSelectAction( bool emitNewEvent )
{
@@ -618,2 +668,4 @@ void KOAgenda::endSelectAction()
emit newTimeSpanSignal(mStartCellX,mStartCellY,mCurrentCellX,mCurrentCellY);
+ if ( emitNewEvent && mStartCellY < mCurrentCellY )
+ emit newEventSignal(mStartCellX,mStartCellY,mCurrentCellX,mCurrentCellY);
}
@@ -1662,3 +1714,3 @@ void KOAgenda::popupAlarm()
if (!mClickedItem) {
- kdDebug() << "KOAgenda::popupAlarm() called without having a clicked item" << endl;
+ qDebug("KOAgenda::popupAlarm() called without having a clicked item ");
return;
diff --git a/korganizer/koagenda.h b/korganizer/koagenda.h
index 111242f..12943d7 100644
--- a/korganizer/koagenda.h
+++ b/korganizer/koagenda.h
@@ -128,2 +128,3 @@ class KOAgenda : public QScrollView
public slots:
+ void newItem( int );
void moveChild( QWidget *, int, int );
@@ -147,2 +148,3 @@ class KOAgenda : public QScrollView
void newEventSignal(int gx,int gy);
+ void newTodoSignal(int gx,int gy);
void newEventSignal(int gxStart, int gyStart, int gxEnd, int gyEnd);
@@ -182,3 +184,3 @@ class KOAgenda : public QScrollView
/** Emd selecting time span. */
- void endSelectAction();
+ void endSelectAction( bool emitNewEvent = false );
@@ -209,2 +211,3 @@ class KOAgenda : public QScrollView
private:
+ bool blockNewEvent;
void init();
@@ -276,2 +279,3 @@ class KOAgenda : public QScrollView
QPopupMenu *mItemPopup; // Right mouse button popup menu for KOAgendaItems
+ QPopupMenu *mNewItemPopup;
diff --git a/korganizer/koagendaview.cpp b/korganizer/koagendaview.cpp
index f54f7bc..60ae41f 100644
--- a/korganizer/koagendaview.cpp
+++ b/korganizer/koagendaview.cpp
@@ -490,2 +490,4 @@ KOAgendaView::KOAgendaView(Calendar *cal,QWidget *parent,const char *name) :
SLOT(newEvent(int,int)));
+ connect(mAgenda,SIGNAL(newTodoSignal(int,int)),
+ SLOT(newTodo(int,int)));
connect(mAgenda,SIGNAL(newEventSignal(int,int,int,int)),
@@ -494,2 +496,4 @@ KOAgendaView::KOAgendaView(Calendar *cal,QWidget *parent,const char *name) :
SLOT(newEventAllDay(int,int)));
+ connect(mAllDayAgenda,SIGNAL(newTodoSignal(int,int)),
+ SLOT(newTodoAllDay(int,int)));
connect(mAllDayAgenda,SIGNAL(newEventSignal(int,int,int,int)),
@@ -1285,2 +1289,17 @@ void KOAgendaView::newEventAllDay(int gx, int )
}
+void KOAgendaView::newTodoAllDay(int gx, int )
+{
+ if (!mSelectedDates.count()) return;
+
+ QDateTime day (mSelectedDates[gx] );
+ emit newTodoSignal(day, true);
+}
+void KOAgendaView::newTodo(int gx, int gy )
+{
+ if (!mSelectedDates.count()) return;
+ QDate dayStart = mSelectedDates[gx];
+ QTime timeStart = mAgenda->gyToTime(gy);
+ QDateTime dt (dayStart,timeStart);
+ emit newTodoSignal( dt, false );
+}
diff --git a/korganizer/koagendaview.h b/korganizer/koagendaview.h
index 3cf938f..01d74a1 100644
--- a/korganizer/koagendaview.h
+++ b/korganizer/koagendaview.h
@@ -164,2 +164,3 @@ class KOAgendaView : public KOEventView {
+ void newTodo(int gx,int gy);
void newEvent(int gx,int gy);
@@ -167,2 +168,3 @@ class KOAgendaView : public KOEventView {
void newEventAllDay(int gx, int gy);
+ void newTodoAllDay(int gx, int gy);
@@ -182,2 +184,3 @@ class KOAgendaView : public KOEventView {
signals:
+ void newTodoSignal( QDateTime ,bool );
void toggleExpand();
diff --git a/korganizer/koeditorgeneraltodo.cpp b/korganizer/koeditorgeneraltodo.cpp
index 158a7d3..b9a028b 100644
--- a/korganizer/koeditorgeneraltodo.cpp
+++ b/korganizer/koeditorgeneraltodo.cpp
@@ -197,5 +197,10 @@ void KOEditorGeneralTodo::setDefaults(QDateTime due,bool allDay)
enableTimeEdits( !allDay );
-
+ if ( due.isValid() ) {
+ mDueCheck->setChecked(true);
+ enableDueEdit(true);
+ } else {
mDueCheck->setChecked(false);
enableDueEdit(false);
+ due = QDateTime::currentDateTime().addDays(7);
+ }
@@ -208,5 +213,5 @@ void KOEditorGeneralTodo::setDefaults(QDateTime due,bool allDay)
mDueTimeEdit->setTime(due.time());
-
- mStartDateEdit->setDate(QDate::currentDate());
- mStartTimeEdit->setTime(QTime::currentTime());
+ due = due.addDays(-7);
+ mStartDateEdit->setDate(due.date());
+ mStartTimeEdit->setTime(due.time());
diff --git a/korganizer/koviewmanager.cpp b/korganizer/koviewmanager.cpp
index e8d5ab1..a88276e 100644
--- a/korganizer/koviewmanager.cpp
+++ b/korganizer/koviewmanager.cpp
@@ -309,6 +309,11 @@ void KOViewManager::showAgendaView( bool fullScreen )
// SIGNALS/SLOTS FOR DAY/WEEK VIEW
+
+
+
+ connect(mAgendaView,SIGNAL(newTodoSignal(QDateTime,bool)),
+ mMainView, SLOT(newTodoDateTime(QDateTime,bool)));
connect(mAgendaView,SIGNAL(newEventSignal(QDateTime)),
mMainView, SLOT(newEvent(QDateTime)));
- // connect(mAgendaView,SIGNAL(newEventSignal(QDateTime,QDateTime)),
- // mMainView, SLOT(newEvent(QDateTime,QDateTime)));
+ connect(mAgendaView,SIGNAL(newEventSignal(QDateTime,QDateTime)),
+ mMainView, SLOT(newEvent(QDateTime,QDateTime)));
connect(mAgendaView,SIGNAL(newEventSignal(QDate)),