https://bugs.kde.org/show_bug.cgi?id=258700
Tobias Koenig <[email protected]> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED --- Comment #1 from Tobias Koenig <tokoe kde org> 2010-12-28 13:08:44 --- commit e3edc761de969fe511c5761d4ecd0d4e800bc62d branch master Author: Tobias Koenig <[email protected]> Date: Tue Dec 28 13:10:41 2010 +0100 Make Invitation Bar available in mobile UI The accept/decline functionality seems to be broken in master right now though, have to cross-check with other developers... BUG: 258700 diff --git a/incidenceeditor-ng/eventortodomobile.ui b/incidenceeditor-ng/eventortodomobile.ui index b30d49e..c5e5fb8 100644 --- a/incidenceeditor-ng/eventortodomobile.ui +++ b/incidenceeditor-ng/eventortodomobile.ui @@ -11,7 +11,56 @@ </rect> </property> <layout class="QGridLayout" name="gridLayout"> - <item row="0" column="0"> + <item row="0" column="1" colspan="3"> + <widget class="QWidget" name="mInvitationBar" native="true"> + <layout class="QHBoxLayout" name="horizontalLayout_10"> + <property name="margin"> + <number>0</number> + </property> + <item> + <widget class="QLabel" name="label_7"> + <property name="text"> + <string comment="@info">You are Invited, what do you want to do?</string> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="mAcceptInvitationButton"> + <property name="toolTip"> + <string comment="@info:tooltip">Accept the invitation</string> + </property> + <property name="whatsThis"> + <string comment="@info:whatsthis">Click this button to accept the invitation.</string> + </property> + <property name="text"> + <string comment="@action:button Accept an invitation">Accept</string> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="mDeclineInvitationButton"> + <property name="text"> + <string comment="@action:button decline an invitation">Decline</string> + </property> + </widget> + </item> + <item> + <spacer name="horizontalSpacer_13"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </widget> + </item> + <item row="1" column="0"> <widget class="QLabel" name="label_3"> <property name="sizePolicy"> <sizepolicy hsizetype="Minimum" vsizetype="Preferred"> @@ -42,7 +91,7 @@ </property> </widget> </item> - <item row="0" column="1" colspan="3"> + <item row="1" column="1" colspan="3"> <widget class="KLineEdit" name="mSummaryEdit"> <property name="sizePolicy"> <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed"> @@ -64,7 +113,7 @@ </property> </widget> </item> - <item row="1" column="0"> + <item row="2" column="0"> <widget class="QLabel" name="label_4"> <property name="sizePolicy"> <sizepolicy hsizetype="Minimum" vsizetype="Preferred"> @@ -83,7 +132,7 @@ </property> </widget> </item> - <item row="1" column="1" colspan="3"> + <item row="2" column="1" colspan="3"> <widget class="KLineEdit" name="mLocationEdit"> <property name="sizePolicy"> <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed"> @@ -105,7 +154,7 @@ </property> </widget> </item> - <item row="3" column="0"> + <item row="4" column="0"> <widget class="QLabel" name="mStartLabel"> <property name="sizePolicy"> <sizepolicy hsizetype="Minimum" vsizetype="Preferred"> @@ -121,7 +170,7 @@ </property> </widget> </item> - <item row="3" column="1"> + <item row="4" column="1"> <widget class="QCheckBox" name="mStartCheck"> <property name="whatsThis"> <string comment="@info:whatsthis">Sets the start date for this to-do</string> @@ -131,7 +180,7 @@ </property> </widget> </item> - <item row="4" column="1" colspan="2"> + <item row="5" column="1" colspan="2"> <widget class="IncidenceEditorNG::KTimeZoneComboBox" name="mTimeZoneComboStart"> <property name="enabled"> <bool>false</bool> @@ -147,7 +196,7 @@ </property> </widget> </item> - <item row="5" column="0"> + <item row="6" column="0"> <widget class="QLabel" name="mEndLabel"> <property name="sizePolicy"> <sizepolicy hsizetype="Minimum" vsizetype="Preferred"> @@ -163,7 +212,7 @@ </property> </widget> </item> - <item row="5" column="1"> + <item row="6" column="1"> <widget class="QCheckBox" name="mEndCheck"> <property name="whatsThis"> <string comment="@info:whatsthis">Sets the due date for this to-do.</string> @@ -173,7 +222,7 @@ </property> </widget> </item> - <item row="6" column="1" colspan="2"> + <item row="7" column="1" colspan="2"> <widget class="IncidenceEditorNG::KTimeZoneComboBox" name="mTimeZoneComboEnd"> <property name="enabled"> <bool>false</bool> @@ -189,7 +238,7 @@ </property> </widget> </item> - <item row="7" column="1" colspan="3"> + <item row="8" column="1" colspan="3"> <widget class="QCheckBox" name="mWholeDayCheck"> <property name="whatsThis"> <string comment="@info:whatsthis">Set if this to-do's start and due dates have times associated with them.</string> @@ -202,7 +251,7 @@ </property> </widget> </item> - <item row="2" column="1" colspan="3"> + <item row="3" column="1" colspan="3"> <widget class="QWidget" name="mCompletionPriorityWidget" native="true"> <property name="sizePolicy"> <sizepolicy hsizetype="Minimum" vsizetype="Fixed"> @@ -320,7 +369,7 @@ </layout> </widget> </item> - <item row="9" column="0" colspan="4"> + <item row="10" column="0" colspan="4"> <spacer name="verticalSpacer"> <property name="orientation"> <enum>Qt::Vertical</enum> @@ -333,7 +382,7 @@ </property> </spacer> </item> - <item row="2" column="0"> + <item row="3" column="0"> <widget class="QLabel" name="mTaskLabel"> <property name="text"> <string comment="@label Task specific line in the dialog containing progress and priority">Progress:</string> @@ -343,14 +392,14 @@ </property> </widget> </item> - <item row="8" column="1" colspan="3"> + <item row="9" column="1" colspan="3"> <widget class="QCheckBox" name="mFreeBusyCheck"> <property name="text"> <string comment="@option:check">Blocks me for other events</string> </property> </widget> </item> - <item row="3" column="2"> + <item row="4" column="2"> <widget class="KPIM::KDateEdit" name="mStartDateEdit"> <property name="sizePolicy"> <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed"> @@ -381,7 +430,7 @@ </property> </widget> </item> - <item row="3" column="3"> + <item row="4" column="3"> <widget class="KPIM::KTimeEdit" name="mStartTimeEdit"> <property name="enabled"> <bool>false</bool> @@ -412,7 +461,7 @@ </property> </widget> </item> - <item row="5" column="2"> + <item row="6" column="2"> <widget class="KPIM::KDateEdit" name="mEndDateEdit"> <property name="sizePolicy"> <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed"> @@ -440,7 +489,7 @@ </property> </widget> </item> - <item row="5" column="3"> + <item row="6" column="3"> <widget class="KPIM::KTimeEdit" name="mEndTimeEdit"> <property name="enabled"> <bool>false</bool> diff --git a/mobile/lib/calendar/incidenceview.cpp b/mobile/lib/calendar/incidenceview.cpp index 7af9bb5..b5aa92d 100644 --- a/mobile/lib/calendar/incidenceview.cpp +++ b/mobile/lib/calendar/incidenceview.cpp @@ -21,6 +21,8 @@ #include "calendarhelper.h" #include "clockhelper.h" +#include "ui_eventortodomobile.h" + #include <calendarsupport/utils.h> #include <calendarsupport/kcalprefs.h> @@ -41,6 +43,7 @@ #include <qdeclarativeengine.h> #include <qdeclarativecontext.h> +#include <incidenceeditor-ng/editorconfig.h> #include <incidenceeditor-ng/incidencealarm.h> #include <incidenceeditor-ng/incidenceattachment.h> #include <incidenceeditor-ng/incidenceattendee.h> @@ -67,9 +70,11 @@ IncidenceView::IncidenceView( QWidget* parent ) , mEditor( new CombinedIncidenceEditor( parent ) ) , mEditorDateTime( 0 ) , mIncidenceMore( 0 ) + , mIncidenceGeneral( 0 ) , mDateWidget( 0 ) , mTimeWidget( 0 ) , mInvitationDispatcher( 0 ) + , mIncidenceAttendee( 0 ) { setAttribute(Qt::WA_DeleteOnClose); QDeclarativeContext *context = engine()->rootContext(); @@ -128,6 +133,8 @@ void IncidenceView::setCollectionCombo( Akonadi::CollectionComboBox *combo ) void IncidenceView::setGeneralEditor( MobileIncidenceGeneral *editorWidget ) { + mIncidenceGeneral = editorWidget; + Q_ASSERT( mItem.hasPayload<Incidence::Ptr>() ); Incidence::Ptr incidencePtr = CalendarSupport::incidence( mItem ); @@ -147,8 +154,31 @@ void IncidenceView::setGeneralEditor( MobileIncidenceGeneral *editorWidget ) mEditor->combine( editor ); mEditor->load( incidencePtr ); - if ( mIncidenceMore != 0 ) // IncidenceMore was set *before* general. + const QStringList allEmails = IncidenceEditorNG::EditorConfig::instance()->allEmails(); + const KCalCore::Attendee::Ptr me = incidencePtr->attendeeByMails( allEmails ); + + if ( incidencePtr->attendeeCount() > 1 && + me && ( me->status() == KCalCore::Attendee::NeedsAction || + me->status() == KCalCore::Attendee::Tentative || + me->status() == KCalCore::Attendee::InProcess ) ) { + editorWidget->mUi->mInvitationBar->show(); + } else { + editorWidget->mUi->mInvitationBar->hide(); + } + + if ( mIncidenceMore != 0 ) { // IncidenceMore was set *before* general. initIncidenceMore(); + + connect( editorWidget->mUi->mAcceptInvitationButton, SIGNAL( clicked() ), + mIncidenceAttendee, SLOT( acceptForMe() ), Qt::UniqueConnection ); + connect( editorWidget->mUi->mDeclineInvitationButton, SIGNAL( clicked() ), + mIncidenceAttendee, SLOT( declineForMe() ), Qt::UniqueConnection ); + } + + connect( editorWidget->mUi->mAcceptInvitationButton, SIGNAL( clicked() ), + editorWidget->mUi->mInvitationBar, SLOT( hide() ) ); + connect( editorWidget->mUi->mDeclineInvitationButton, SIGNAL( clicked() ), + editorWidget->mUi->mInvitationBar, SLOT( hide() ) ); } void IncidenceView::showCalendar( QObject *obj ) @@ -205,8 +235,8 @@ void IncidenceView::initIncidenceMore() editor = new IncidenceEditorNG::IncidenceDescription( mIncidenceMore->mUi ); mEditor->combine( editor ); - editor = new IncidenceEditorNG::IncidenceAttendee( 0, mEditorDateTime, mIncidenceMore->mUi ); - mEditor->combine( editor ); + mIncidenceAttendee = new IncidenceEditorNG::IncidenceAttendee( 0, mEditorDateTime, mIncidenceMore->mUi ); + mEditor->combine( mIncidenceAttendee ); editor = new IncidenceEditorNG::IncidenceAlarm( mEditorDateTime, mIncidenceMore->mUi ); mEditor->combine( editor ); @@ -226,8 +256,16 @@ void IncidenceView::initIncidenceMore() void IncidenceView::setMoreEditor( MobileIncidenceMore *editorWidget ) { mIncidenceMore = editorWidget; + if ( mEditorDateTime != 0 ) // IncidenceGeneral was not set yet. initIncidenceMore(); + + if ( mIncidenceGeneral ) { + connect( mIncidenceGeneral->mUi->mAcceptInvitationButton, SIGNAL( clicked() ), + mIncidenceAttendee, SLOT( acceptForMe() ), Qt::UniqueConnection ); + connect( mIncidenceGeneral->mUi->mDeclineInvitationButton, SIGNAL( clicked() ), + mIncidenceAttendee, SLOT( declineForMe() ), Qt::UniqueConnection ); + } } void IncidenceView::setDefaultCollection( const Akonadi::Collection &collection ) diff --git a/mobile/lib/calendar/incidenceview.h b/mobile/lib/calendar/incidenceview.h index 85836fb..eb325e1 100644 --- a/mobile/lib/calendar/incidenceview.h +++ b/mobile/lib/calendar/incidenceview.h @@ -38,6 +38,7 @@ class CollectionComboBox; } namespace IncidenceEditorNG { +class IncidenceAttendee; class IncidenceDateTime; class InvitationDispatcher; } @@ -107,11 +108,13 @@ class IncidenceView : public KDeclarativeFullScreenView, public IncidenceEditorN /// We need this because we can't rely on the order in which those two are added. MobileIncidenceMore *mIncidenceMore; + MobileIncidenceGeneral *mIncidenceGeneral; KPIM::KDateEdit *mDateWidget; KPIM::KTimeEdit *mTimeWidget; IncidenceEditorNG::InvitationDispatcher *mInvitationDispatcher; + IncidenceEditorNG::IncidenceAttendee *mIncidenceAttendee; }; #endif // INCIDENCEVIEW_H -- Configure bugmail: https://bugs.kde.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. _______________________________________________ Kdepim-bugs mailing list [email protected] https://mail.kde.org/mailman/listinfo/kdepim-bugs
