phonebookui/pbkcommonui/src/cntimageeditorview.cpp
changeset 61 d30183af6ca6
parent 54 47627ab5d7a4
equal deleted inserted replaced
56:d508aa856878 61:d30183af6ca6
    14 * Description:
    14 * Description:
    15 *
    15 *
    16 */
    16 */
    17 
    17 
    18 #include "cntimageeditorview.h"
    18 #include "cntimageeditorview.h"
       
    19 #include "cntthumbnailmanager.h"
    19 #include "cntimageutility.h"
    20 #include "cntimageutility.h"
    20 #include "cntsavemanager.h"
    21 #include "cntsavemanager.h"
    21 #include "cntimagelabel.h"
    22 #include "cntimagelabel.h"
    22 
    23 
    23 #include <hblabel.h>
    24 #include <hblabel.h>
    25 #include <xqaiwdecl.h>
    26 #include <xqaiwdecl.h>
    26 
    27 
    27 #include "cntdebug.h"
    28 #include "cntdebug.h"
    28 #include "cntglobal.h"
    29 #include "cntglobal.h"
    29 
    30 
    30 #include <thumbnailmanager_qt.h>
       
    31 #include <hbaction.h>
    31 #include <hbaction.h>
    32 #include <hbview.h>
    32 #include <hbview.h>
    33 #include <hbmainwindow.h>
    33 #include <hbmainwindow.h>
    34 #include <hblistview.h>
    34 #include <hblistview.h>
    35 #include <hblistviewitem.h>
    35 #include <hblistviewitem.h>
    73     
    73     
    74     // menu action
    74     // menu action
    75     mRemoveImage = static_cast<HbAction*>(mDocumentLoader.findObject("cnt:removeimage"));
    75     mRemoveImage = static_cast<HbAction*>(mDocumentLoader.findObject("cnt:removeimage"));
    76     connect(mRemoveImage, SIGNAL(triggered()), this, SLOT(removeImage()));
    76     connect(mRemoveImage, SIGNAL(triggered()), this, SLOT(removeImage()));
    77 
    77 
    78     // thumbnail manager
       
    79     mThumbnailManager = new ThumbnailManager(this);
       
    80     mThumbnailManager->setMode(ThumbnailManager::Default);
       
    81     mThumbnailManager->setQualityPreference(ThumbnailManager::OptimizeForQuality);
       
    82     mThumbnailManager->setThumbnailSize(ThumbnailManager::ThumbnailLarge);
       
    83     
       
    84     connect( mThumbnailManager, SIGNAL(thumbnailReady(QPixmap, void*, int, int)),
       
    85         this, SLOT(thumbnailReady(QPixmap, void*, int, int)) );
       
    86     
       
    87     // closing the application from task swapper or end key will cause the contact to be saved
    78     // closing the application from task swapper or end key will cause the contact to be saved
    88     connect( qApp, SIGNAL(aboutToQuit()), this, SLOT(saveContact()));
    79     connect( qApp, SIGNAL(aboutToQuit()), this, SLOT(saveContact()));
    89 }
    80 }
    90 
    81 
    91 /*!
    82 /*!
   114 }
   105 }
   115 
   106 
   116 /*!
   107 /*!
   117 Called when activating the view
   108 Called when activating the view
   118 */
   109 */
   119 void CntImageEditorView::activate( CntAbstractViewManager* aMgr, const CntViewParameters aArgs )
   110 void CntImageEditorView::activate( const CntViewParameters aArgs )
   120 {
   111 {
   121     mViewManager = aMgr;
       
   122     mArgs = aArgs;
   112     mArgs = aArgs;
   123     
   113     
       
   114     mViewManager = &mEngine->viewManager();
       
   115     mThumbnailManager = &mEngine->thumbnailManager();
       
   116     connect( mThumbnailManager, SIGNAL(thumbnailReady(QPixmap, void*, int, int)),
       
   117             this, SLOT(thumbnailReady(QPixmap, void*, int, int)) );
       
   118        
   124     if (mView->navigationAction() != mSoftkey)
   119     if (mView->navigationAction() != mSoftkey)
   125         mView->setNavigationAction(mSoftkey);
   120         mView->setNavigationAction(mSoftkey);
   126     
   121     
   127     HbMainWindow* window = mView->mainWindow();
   122     HbMainWindow* window = mView->mainWindow();
   128     if ( window )
   123     if ( window )
   141         mContact = new QContact(mArgs.value(ESelectedGroupContact).value<QContact>());
   136         mContact = new QContact(mArgs.value(ESelectedGroupContact).value<QContact>());
   142     }
   137     }
   143     
   138     
   144     QString myCard = mArgs.value( EMyCard ).toString();
   139     QString myCard = mArgs.value( EMyCard ).toString();
   145     QContactLocalId localId = mContact->localId();
   140     QContactLocalId localId = mContact->localId();
   146     QContactLocalId selfContactId = mViewManager->contactManager(SYMBIAN_BACKEND)->selfContactId();
   141     QContactLocalId selfContactId = mEngine->contactManager(SYMBIAN_BACKEND).selfContactId();
   147     bool isMyCard = ( localId == selfContactId && localId != 0 ) || !myCard.isEmpty();
   142     bool isMyCard = ( localId == selfContactId && localId != 0 ) || !myCard.isEmpty();
   148     
   143     
   149     if (isMyCard)
   144     if (isMyCard)
   150     {
   145     {
   151         mSaveManager = new CntSaveManager(CntSaveManager::EMyCard);
   146         mSaveManager = new CntSaveManager(CntSaveManager::EMyCard);
   168         for (int i = 0;i < details.count();i++)
   163         for (int i = 0;i < details.count();i++)
   169             {
   164             {
   170                 if (details.at(i).imageUrl().isValid())
   165                 if (details.at(i).imageUrl().isValid())
   171                     {
   166                     {
   172                     mAvatar = new QContactAvatar(details.at(i));
   167                     mAvatar = new QContactAvatar(details.at(i));
   173                     mThumbnailManager->getThumbnail(mAvatar->imageUrl().toString());
   168                     mThumbnailManager->getThumbnail(ThumbnailManager::ThumbnailLarge, mAvatar->imageUrl().toString());
   174                     break;
   169                     break;
   175                     }
   170                     }
   176             }
   171             }
   177         }
   172         }
   178     else
   173     else
   361                     imageUtility.removeImage(filePath);
   356                     imageUtility.removeImage(filePath);
   362             
   357             
   363                 CNT_LOG_ARGS("image created, image = " << filePath)
   358                 CNT_LOG_ARGS("image created, image = " << filePath)
   364                 
   359                 
   365                 mAvatar->setImageUrl(QUrl(imagepath));
   360                 mAvatar->setImageUrl(QUrl(imagepath));
   366                 mThumbnailManager->getThumbnail(imagepath);
   361                 mThumbnailManager->getThumbnail(ThumbnailManager::ThumbnailLarge, imagepath);
   367                 mRemoveImage->setEnabled(true);
   362                 mRemoveImage->setEnabled(true);
   368             }
   363             }
   369         }
   364         }
   370         else
   365         else
   371         {
   366         {
   372             // No mass memory, use the orginal image
   367             // No mass memory, use the orginal image
   373             mAvatar->setImageUrl(QUrl(value.toString()));
   368             mAvatar->setImageUrl(QUrl(value.toString()));
   374             mThumbnailManager->getThumbnail(value.toString());
   369             mThumbnailManager->getThumbnail(ThumbnailManager::ThumbnailLarge, value.toString());
   375             mRemoveImage->setEnabled(true);
   370             mRemoveImage->setEnabled(true);
   376         }
   371         }
   377     }
   372     }
   378     
   373     
   379     CNT_EXIT
   374     CNT_EXIT
   444     if ( mAvatar->imageUrl().isEmpty())
   439     if ( mAvatar->imageUrl().isEmpty())
   445     {
   440     {
   446         mContact->removeDetail(mAvatar);
   441         mContact->removeDetail(mAvatar);
   447     }
   442     }
   448     
   443     
   449     QString name = mViewManager->contactManager(SYMBIAN_BACKEND)->synthesizedContactDisplayLabel(*mContact);
   444     QString name = mEngine->contactManager(SYMBIAN_BACKEND).synthesizedContactDisplayLabel(*mContact);
   450     
   445     
   451     if (name.isEmpty())
   446     if (name.isEmpty())
   452     {
   447     {
   453         name = hbTrId("txt_phob_list_unnamed");
   448         name = hbTrId("txt_phob_list_unnamed");
   454     }
   449     }
   455     
   450     
   456     CntSaveManager::CntSaveResult result = mSaveManager->saveContact(mContact, mViewManager->contactManager(SYMBIAN_BACKEND));
   451     CntSaveManager::CntSaveResult result = mSaveManager->saveContact(mContact, &mEngine->contactManager(SYMBIAN_BACKEND));
   457     
   452     
   458     if (mContact->type() != QContactType::TypeGroup)
   453     if (mContact->type() != QContactType::TypeGroup)
   459     {
   454     {
   460         switch (result)
   455         switch (result)
   461         {
   456         {