messagingapp/msgui/msgapp/src/msgactivityhandler.cpp
changeset 43 35b64624a9e7
parent 34 84197e66a4bd
child 70 a15d9966050f
equal deleted inserted replaced
34:84197e66a4bd 43:35b64624a9e7
    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
    92 void MsgActivityHandler::clearActivities()
   120 void MsgActivityHandler::clearActivities()
    93 {
   121 {
    94     HbActivityManager* activityManager = 
   122     HbActivityManager* activityManager = 
    95                         qobject_cast<HbApplication*>(qApp)->activityManager();
   123                         qobject_cast<HbApplication*>(qApp)->activityManager();
    96     activityManager->removeActivity(ListViewActivityName);   
   124     activityManager->removeActivity(ListViewActivityName);   
       
   125     activityManager->removeActivity(EditorActivityName);   
    97 }
   126 }
    98 
   127 
    99 //-----------------------------------------------------------------------------
   128 //-----------------------------------------------------------------------------
   100 // MsgActivityHandler::setMainWindow
   129 // MsgActivityHandler::setMainWindow
   101 // @see header
   130 // @see header