[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdepim
From: Andreas Hartmetz <ahartmetz () gmail ! com>
Date: 2007-08-01 2:41:22
Message-ID: 1185936082.699307.14767.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 694904 by ahartmetz:
Forward port of Enterprise commit 694771: Implement "new Event on double click" in \
Gantt view. Disable some code that crashed the Gantt view right at startup due to a \
stack overflow. Needs further investigation.
M +6 -0 kdgantt1/KDGanttView.cpp
M +3 -0 kdgantt1/KDGanttView.h
M +7 -0 kdgantt1/KDGanttViewSubwidgets.cpp
M +20 -5 korganizer/kotimelineview.cpp
M +2 -1 korganizer/kotimelineview.h
--- trunk/KDE/kdepim/kdgantt1/KDGanttView.cpp #694903:694904
@@ -850,6 +850,12 @@
}
+void KDGanttView::emptySpaceDoubleClicked( QMouseEvent * e )
+{
+ emit dateTimeDoubleClicked( getDateTimeForCoordX( e->x(), false ) );
+}
+
+
/*
Implements a casted pass-through of the currentChanged() signal.
*/
--- trunk/KDE/kdepim/kdgantt1/KDGanttView.h #694903:694904
@@ -493,6 +493,7 @@
void taskLinkDoubleClicked( KDGanttViewTaskLink* );
void dropped ( QDropEvent * e, KDGanttViewItem* droppedItem, KDGanttViewItem* \
itemBelowMouse); + void dateTimeDoubleClicked ( const QDateTime& );
void addOneTickRight();
void addOneTickLeft();
@@ -549,6 +550,8 @@
bool loadXML( const QDomDocument& doc );
QDomDocument saveXML( bool withPI = true ) const;
+ void emptySpaceDoubleClicked( QMouseEvent* e );
+
static QString scaleToString( Scale scale );
static QString yearFormatToString( YearFormat format );
static QString hourFormatToString( HourFormat format );
--- trunk/KDE/kdepim/kdgantt1/KDGanttViewSubwidgets.cpp #694903:694904
@@ -4195,6 +4195,13 @@
void KDGanttCanvasView::contentsMouseDoubleClickEvent ( QMouseEvent * e )
{
QCanvasItemList il = canvas() ->collisions ( e->pos() );
+
+ if ( il.isEmpty() && e->button() == Qt::LeftButton ) {
+ //not directly sending a signal here (encapsulation and whatnot)
+ mySignalSender->emptySpaceDoubleClicked( e );
+ return;
+ }
+
QCanvasItemList::Iterator it;
for ( it = il.begin(); it != il.end(); ++it ) {
switch ( e->button() ) {
--- trunk/KDE/kdepim/korganizer/kotimelineview.cpp #694903:694904
@@ -70,6 +70,8 @@
SLOT(itemMoved(KDGanttViewItem*)) );
connect( mGantt, SIGNAL(rescaling(KDGanttView::Scale)),
SLOT(overscale(KDGanttView::Scale)) );
+ connect( mGantt, SIGNAL( dateTimeDoubleClicked( const QDateTime& ) ),
+ SLOT( newEventWithHint( const QDateTime& ) ) );
}
KOTimelineView::~KOTimelineView()
@@ -100,7 +102,7 @@
{
mStartDate = start;
mEndDate = end;
- mRmbDate = QDateTime();
+ mHintDate = KDateTime();
mGantt->setHorizonStart( QDateTime(start) );
mGantt->setHorizonEnd( QDateTime(end.addDays(1)) );
mGantt->setMinorScaleCount( 1 );
@@ -207,7 +209,7 @@
void KOTimelineView::itemRightClicked( KDGanttViewItem *item )
{
- mRmbDate = mGantt->getDateTimeForCoordX( QCursor::pos().x(), true );
+ mHintDate = KDateTime( mGantt->getDateTimeForCoordX( QCursor::pos().x(), true ) );
TimelineSubItem *tlitem = dynamic_cast<TimelineSubItem*>( item );
if ( !tlitem ) {
showNewEventPopup();
@@ -220,12 +222,19 @@
bool KOTimelineView::eventDurationHint(KDateTime & startDt, KDateTime & endDt, bool \
& allDay) {
- startDt = KDateTime(mRmbDate);
- endDt = KDateTime(mRmbDate.addSecs( 2 * 60 * 60 ));
+ startDt = KDateTime(mHintDate);
+ endDt = KDateTime(mHintDate.addSecs( 2 * 60 * 60 ));
allDay = false;
- return mRmbDate.isValid();
+ return mHintDate.isValid();
}
+//slot
+void KOTimelineView::newEventWithHint( const QDateTime& dt )
+{
+ mHintDate = KDateTime(dt);
+ emit newEventSignal( dt );
+}
+
TimelineItem * KOTimelineView::calendarItemForIncidence(KCal::Incidence * incidence)
{
CalendarResources *calres = dynamic_cast<CalendarResources*>( calendar() );
@@ -335,10 +344,16 @@
void KOTimelineView::overscale(KDGanttView::Scale scale)
{
+ /* Disabled, looks *really* bogus:
+ this triggers and endless rescaling loop; we want to set
+ a fixed scale, the Gantt view doesn't like it and rescales
+ (emitting a rescaling signal that leads here) and so on...
Q_UNUSED( scale );
+ //set a relative zoom factor of 1 (?!)
mGantt->setZoomFactor( 1, false );
mGantt->setScale( KDGanttView::Hour );
mGantt->setMinorScaleCount( 12 );
+ */
}
#include "kotimelineview.moc"
--- trunk/KDE/kdepim/korganizer/kotimelineview.h #694903:694904
@@ -71,13 +71,14 @@
void itemRightClicked( KDGanttViewItem *item );
void itemMoved( KDGanttViewItem *item );
void overscale( KDGanttView::Scale scale );
+ void newEventWithHint( const QDateTime & );
private:
KDGanttView* mGantt;
QMap<KCal::ResourceCalendar*, QMap<QString, KOrg::TimelineItem*> > \
mCalendarItemMap; KOEventPopupMenu *mEventPopup;
QDate mStartDate, mEndDate;
- QDateTime mRmbDate;
+ KDateTime mHintDate;
};
#endif
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic