23 #include "msgmainwindow.h" |
23 #include "msgmainwindow.h" |
24 #include <hbapplication.h> |
24 #include <hbapplication.h> |
25 #include <hbactivitymanager.h> |
25 #include <hbactivitymanager.h> |
26 #include <QVariantHash> |
26 #include <QVariantHash> |
27 |
27 |
|
28 const int INVALID_MSGID = -1; |
28 // Activity Names |
29 // Activity Names |
29 const QString ListViewActivityName("MsgConversationsList"); |
30 const QString ListViewActivityName("MsgConversationsList"); |
|
31 const QString EditorActivityName("MsgCreate"); |
30 |
32 |
31 //----------------------------------------------------------------------------- |
33 //----------------------------------------------------------------------------- |
32 // MsgActivityHandler::MsgActivityHandler |
34 // MsgActivityHandler::MsgActivityHandler |
33 // Constructor |
35 // Constructor |
34 //----------------------------------------------------------------------------- |
36 //----------------------------------------------------------------------------- |
53 //----------------------------------------------------------------------------- |
55 //----------------------------------------------------------------------------- |
54 void MsgActivityHandler::saveActivity() |
56 void MsgActivityHandler::saveActivity() |
55 { |
57 { |
56 HbActivityManager* activityManager = |
58 HbActivityManager* activityManager = |
57 qobject_cast<HbApplication*>(qApp)->activityManager(); |
59 qobject_cast<HbApplication*>(qApp)->activityManager(); |
58 |
60 |
59 if( mMainWindow->viewManager()->currentView()== MsgBaseView::CLV) |
61 int currentView = mMainWindow->viewManager()->currentView(); |
|
62 int msgId = INVALID_MSGID; |
|
63 if((currentView == MsgBaseView::CV) || (currentView== MsgBaseView::UNIEDITOR)) |
|
64 { |
|
65 msgId = mMainWindow->viewManager()->saveContentToDraft(); |
|
66 } |
|
67 |
|
68 // get a screenshot for saving to the activity manager |
|
69 QVariantHash metadata; |
|
70 metadata.insert("screenshot", |
|
71 QPixmap::grabWidget(mMainWindow, mMainWindow->rect())); |
|
72 |
|
73 // save any data necessary to save the state |
|
74 QByteArray serializedActivity; |
|
75 QDataStream stream(&serializedActivity, |
|
76 QIODevice::WriteOnly | QIODevice::Append); |
|
77 |
|
78 if( msgId != INVALID_MSGID) |
60 { |
79 { |
61 // get a screenshot for saving to the activity manager |
80 stream << EditorActivityName; |
62 QVariantHash metadata; |
81 stream << msgId; |
63 metadata.insert("screenshot", |
|
64 QPixmap::grabWidget(mMainWindow, mMainWindow->rect())); |
|
65 |
82 |
66 // save any data necessary to save the state |
83 // add the activity to the activity manager |
67 QByteArray serializedActivity; |
84 bool ok = activityManager->addActivity(EditorActivityName, |
68 QDataStream stream(&serializedActivity, |
85 serializedActivity, metadata); |
69 QIODevice::WriteOnly | QIODevice::Append); |
86 } |
|
87 else |
|
88 { |
70 stream << ListViewActivityName; |
89 stream << ListViewActivityName; |
71 |
90 |
72 // add the activity to the activity manager |
91 // add the activity to the activity manager |
73 bool ok = activityManager->addActivity(ListViewActivityName, |
92 bool ok = activityManager->addActivity(ListViewActivityName, |
74 serializedActivity, metadata); |
93 serializedActivity, metadata); |
75 } |
94 } |
76 } |
95 } |
77 |
96 |
78 //----------------------------------------------------------------------------- |
97 //----------------------------------------------------------------------------- |
79 // MsgActivityHandler::handleActivity |
98 // MsgActivityHandler::parseActivityData |
80 // @see header |
99 // @see header |
81 //----------------------------------------------------------------------------- |
100 //----------------------------------------------------------------------------- |
82 void MsgActivityHandler::handleActivity(const QVariant &activityData) |
101 int MsgActivityHandler::parseActivityData(const QVariant &activityData) |
83 { |
102 { |
84 // To be handled later |
103 QByteArray serializedModel = activityData.toByteArray(); |
85 Q_UNUSED(activityData) |
104 QDataStream stream(&serializedModel, QIODevice::ReadOnly); |
|
105 |
|
106 QString activityName; |
|
107 int msgId = INVALID_MSGID; |
|
108 stream >> activityName; |
|
109 if( activityName == EditorActivityName) |
|
110 { |
|
111 stream >> msgId; |
|
112 } |
|
113 return msgId; |
86 } |
114 } |
87 |
115 |
88 //----------------------------------------------------------------------------- |
116 //----------------------------------------------------------------------------- |
89 // MsgActivityHandler::clearActivities |
117 // MsgActivityHandler::clearActivities |
90 // @see header |
118 // @see header |