Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Evergreen:11.1:kernel-2.6.32
kdepim4
r905610.diff
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File r905610.diff of Package kdepim4
Subject: korganizer: fix new journal is set to date of the first day of the week/month From: wstephenson@suse.de Bug: kde#170634 Patch-upstream: 905610 --- korganizer/calendarview.h (revision 905609) +++ korganizer/calendarview.h (revision 905610) @@ -592,30 +592,27 @@ class KORGANIZERPRIVATE_EXPORT CalendarV void showDates( const KCal::DateList & ); public: - // show a standard warning - // returns KMsgBox::yesNoCancel() int msgCalModified(); - /** Adapt navigation units corresponding to step size of navigation of the - * current view. - */ + /** + Adapts navigation units according to the current view's navigation step size. + */ void adaptNavigationUnits(); - //Attendee* getYourAttendee( Event *event ); - protected: void setIncidenceChanger( IncidenceChangerBase *changer ); -// // returns KMsgBox::OKCancel() int msgItemDelete( Incidence *incidence ); Todo *selectedTodo(); void warningChangeFailed( Incidence * ); void checkForFilteredChange( Incidence *incidence ); - /** Adjust the given date/times by valid defaults (selection or configured - defaults, if invalid values are given) and allow the view to adjust the - type. */ + + /** + Adjust the given date/times by valid defaults (selection or configured + defaults, if invalid values are given) and allow the view to adjust the type. + */ void dateTimesForNewEvent( QDateTime &startDt, QDateTime &endDt, bool &allDay ); KOEventEditor *newEventEditor( const QDateTime &startDtParam=QDateTime(), const QDateTime &endDtParam=QDateTime(), @@ -626,9 +623,15 @@ class KORGANIZERPRIVATE_EXPORT CalendarV private: void init(); + /** + Returns the best guess at the current active date in the view. + */ + QDate activeDate(); + void createPrinter(); void calendarModified( bool, Calendar * ); + // Helper function for purgeCompleted that recursively purges a todo and // its subitems. If it cannot delete a completed todo (because it has // uncompleted subitems), notAllPurged is set to true. @@ -673,7 +676,7 @@ class KORGANIZERPRIVATE_EXPORT CalendarV QMap<Incidence*,KOIncidenceEditor*> mDialogList; KOrg::IncidenceChangerBase *mChanger; - QList<int> mMainSplitterSizes; // temporary store for main splitter sizes while the left frame is hidden + QList<int> mMainSplitterSizes; // temp store for main splitter sizes while left frame is hidden bool mSplitterSizesValid; }; --- korganizer/calendarview.cpp (revision 905609) +++ korganizer/calendarview.cpp (revision 905610) @@ -328,6 +328,29 @@ KOIncidenceEditor *CalendarView::editorD } } +QDate CalendarView::activeDate() +{ + KOrg::BaseView *curView = mViewManager->currentView(); + if ( curView ) { + // Only the agenda view has a selectionStart (at this time) + KOAgendaView *aView = mViewManager->agendaView(); + if ( curView == aView && aView->selectionStart().isValid() ) { + if ( aView->selectionStart().isValid() ) { + return aView->selectionStart().date(); + } + } + // Try the view's selectedDates() + if ( !curView->selectedDates().isEmpty() ) { + if ( curView->selectedDates().first().isValid() ) { + return curView->selectedDates().first(); + } + } + } + + // When all else fails, use the navigator start date. + return mNavigator->selectedDates().first(); +} + QDate CalendarView::startDate() { DateList dates = mNavigator->selectedDates(); @@ -909,10 +932,11 @@ void CalendarView::edit_options() mDialogManager->showOptionsDialog(); } -void CalendarView::dateTimesForNewEvent( QDateTime &startDt, QDateTime &endDt, bool &allDay ) +void CalendarView::dateTimesForNewEvent( QDateTime &startDt, QDateTime &endDt, + bool &allDay ) { if ( !startDt.isValid() ) { - startDt.setDate( mNavigator->selectedDates().first() ); + startDt.setDate( activeDate() ); startDt.setTime( KOPrefs::instance()->mStartTime.time() ); } if ( !endDt.isValid() ) { @@ -925,11 +949,13 @@ void CalendarView::dateTimesForNewEvent( } KOEventEditor *CalendarView::newEventEditor( const QDateTime &startDtParam, - const QDateTime &endDtParam, bool allDayParam ) + const QDateTime &endDtParam, + bool allDayParam ) { - // let the current view change the default start/end datetime + // Let the current view change the default start/end datetime bool allDay = allDayParam; QDateTime startDt( startDtParam ), endDt( endDtParam ); + // Adjust the start/end date times (i.e. replace invalid values by defaults, // and let the view adjust the type. dateTimesForNewEvent( startDt, endDt, allDay ); @@ -972,6 +998,7 @@ void CalendarView::newEvent( const QStri { KOEventEditor *eventEditor = newEventEditor(); eventEditor->setTexts( summary, description ); + // if attach or attendee list is empty, these methods don't do anything, so // it's save to call them in every case eventEditor->addAttachments( attachments, attachmentMimetypes, inlineAttachment ); @@ -1000,7 +1027,7 @@ void CalendarView::newTodo() connectIncidenceEditor( todoEditor ); todoEditor->newTodo(); if ( mViewManager->currentView()->isEventView() ) { - dtDue.setDate( mNavigator->selectedDates().first() ); + dtDue.setDate( activeDate() ); QDateTime dtDummy = QDateTime::currentDateTime(); mViewManager->currentView()-> eventDurationHint( dtDue, dtDummy, allday ); @@ -1020,8 +1047,7 @@ void CalendarView::newTodo( const QDate void CalendarView::newJournal() { - kDebug(); - newJournal( QString(), QDate() ); + newJournal( QString(), activeDate() ); } void CalendarView::newJournal( const QDate &date ) @@ -1036,7 +1062,7 @@ void CalendarView::newJournal( const QSt connectIncidenceEditor( journalEditor ); journalEditor->newJournal(); if ( !journalDate.isValid() ) { - journalDate = mNavigator->selectedDates().first(); + journalDate = activeDate(); } journalEditor->setDate( journalDate ); if ( !text.isEmpty() ) { @@ -1066,9 +1092,7 @@ void CalendarView::newSubTodo( Todo *par void CalendarView::newFloatingEvent() { - DateList tmpList = mNavigator->selectedDates(); - QDate date = tmpList.first(); - + QDate date = activeDate(); newEvent( QDateTime( date, QTime( 12, 0, 0 ) ), QDateTime( date, QTime( 12, 0, 0 ) ), true ); } Index: korganizer/calendarview.h =================================================================== Index: korganizer/calendarview.cpp ===================================================================
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor