--- a/phonebookui/pbkcommonui/src/cntnamesview_p.cpp Tue Jul 06 14:05:47 2010 +0300
+++ b/phonebookui/pbkcommonui/src/cntnamesview_p.cpp Wed Aug 18 09:39:00 2010 +0300
@@ -17,15 +17,15 @@
#include "cntnamesview_p.h"
#include "cntactionlauncher.h"
-#include "cntfetchcontactsview.h"
+#include "cntfetchcontactpopup.h"
#include "cntextensionmanager.h"
#include "cntglobal.h"
#include "cntdebug.h"
+#include "cntapplication.h"
#include <cntuiextensionfactory.h>
#include <cntuisocialextension.h>
-#include <qapplication.h>
#include <hbabstractviewitem.h>
#include <hbaction.h>
#include <hbmenu.h>
@@ -47,6 +47,8 @@
#include <hbmessagebox.h>
#include <hbparameterlengthlimiter.h>
+#include <QInputContext>
+
const char *CNT_CONTACTLIST_XML = ":/xml/contacts_namelist.docml";
static const int CNT_MIN_ROW_COUNT = 2;
@@ -64,7 +66,6 @@
mNamesAction(NULL),
mMenuBuilder(NULL),
mHandledContactId(0),
- mFetchView(NULL),
mIsDefault(true),
mId( namesView ),
mActionGroup(NULL),
@@ -137,9 +138,24 @@
connect(mSearchPanel, SIGNAL(exitClicked()), this, SLOT(hideFinder()));
connect(mSearchPanel, SIGNAL(criteriaChanged(QString)), this, SLOT(setFilter(QString)));
+ HbMainWindow* win = mView->mainWindow();
+ CntApplication* cntApp = static_cast<CntApplication*>(qApp);
+ connect(win, SIGNAL(viewReady()), cntApp, SIGNAL(applicationReady()));
+
+#ifdef __WINS__
+ mView->menu()->addAction("Change Orientation", this, SLOT(switchOrientation()) );
+#endif
CNT_EXIT
}
+void CntNamesViewPrivate::switchOrientation()
+{
+ HbMainWindow* win = mView->mainWindow();
+ Qt::Orientation orientation = win->orientation();
+
+ win->setOrientation( orientation == Qt::Horizontal ? Qt::Vertical : Qt::Horizontal );
+}
+
CntNamesViewPrivate::~CntNamesViewPrivate()
{
CNT_ENTRY
@@ -172,6 +188,10 @@
CNT_ENTRY
mViewManager = aMgr;
+ if (mView->mainWindow() != NULL && !(mView->visibleItems() & Hb::AllItems))
+ {
+ hideFinder();
+ }
if (!mListModel) {
QContactDetailFilter filter;
@@ -212,18 +232,23 @@
setScrollPosition(aArgs.value(ESelectedContact).value<QContact>().localId());
}
+ if ( aArgs.value( EExtraAction ).toString() == CNT_FIND_ACTION )
+ {
+ showFinder();
+ }
+
CNT_EXIT
}
void CntNamesViewPrivate::deactivate()
{
CNT_ENTRY
-
- if (!(mView->visibleItems() & Hb::AllItems))
+ HbMainWindow* win = mView->mainWindow();
+ if ( win != NULL)
{
- hideFinder();
+ CntApplication* cntApp = static_cast<CntApplication*>(qApp);
+ disconnect(win, SIGNAL(viewReady()), cntApp, SIGNAL(applicationReady()));
}
-
delete mMenuBuilder;
mMenuBuilder = NULL;
@@ -252,6 +277,16 @@
{
editor->setText("");
editor->setFocus();
+
+ // This opens the VKB
+ QInputContext *ic = qApp->inputContext();
+ if (ic)
+ {
+ QEvent *event = new QEvent(QEvent::RequestSoftwareInputPanel);
+ ic->filterEvent(event);
+ delete event;
+ }
+
}
CNT_EXIT
@@ -295,6 +330,8 @@
mImportSim->setVisible(false);
mNewContact->setVisible(false);
mMultipleDeleter->setVisible(false);
+ HbAction* settings = static_cast<HbAction*>(document()->findObject("cnt:settings") );
+ settings->setVisible(false);
CNT_EXIT
}
@@ -303,9 +340,6 @@
{
CNT_ENTRY
- mVirtualKeyboard->closeKeypad();
- mView->setMaximumHeight(-1);
-
document()->load( CNT_CONTACTLIST_XML, "no_find" );
mView->showItems(Hb::AllItems);
@@ -324,6 +358,8 @@
mNewContact->setVisible(true);
mImportSim->setVisible(true);
mMultipleDeleter->setVisible(true);
+ HbAction* settings = static_cast<HbAction*>(document()->findObject("cnt:settings") );
+ settings->setVisible(true);
CNT_EXIT
}
@@ -397,12 +433,16 @@
CNT_ENTRY
QContactManager* manager = mViewManager->contactManager( SYMBIAN_BACKEND );
- QString name = manager->synthesizedDisplayLabel(aContact);
+ QString name = manager->synthesizedContactDisplayLabel(aContact);
+ if (name.isEmpty())
+ {
+ name = hbTrId("txt_phob_list_unnamed");
+ }
mHandledContactId = aContact.localId();
- HbMessageBox::question(HbParameterLengthLimiter(hbTrId("txt_phob_info_delete_1")).arg(name), this, SLOT(handleDeleteContact(HbAction*)),
- hbTrId("txt_common_button_delete"), hbTrId("txt_common_button_cancel"));
+ HbMessageBox::question(HbParameterLengthLimiter(hbTrId("txt_phob_info_delete_1")).arg(name), this, SLOT(handleDeleteContact(int)),
+ HbMessageBox::Delete | HbMessageBox::Cancel);
CNT_EXIT
}
@@ -410,36 +450,26 @@
void CntNamesViewPrivate::deleteMultipleContacts()
{
CNT_ENTRY
+ CntFetchContactPopup* popup = CntFetchContactPopup::createMultiSelectionPopup(
+ hbTrId("txt_phob_title_delete_contacts"),
+ hbTrId("txt_common_button_delete"),
+ *mViewManager->contactManager(SYMBIAN_BACKEND));
+ connect(popup, SIGNAL(fetchReady(QSet<QContactLocalId>)),
+ this, SLOT(handleDeleteMultipleContacts(QSet<QContactLocalId>)) );
- if (!mFetchView) {
- mFetchView = new CntFetchContacts(*mViewManager->contactManager( SYMBIAN_BACKEND ));
- connect(mFetchView, SIGNAL(clicked()), this, SLOT(handleDeleteMultipleContacts()));
- }
-
- mFetchView->setDetails(hbTrId("txt_phob_title_delete_contacts"),hbTrId("txt_common_button_delete"));
- QSet<QContactLocalId> emptyContactsSet;
-
- // Pop up a list of contacts for deletion
- mFetchView->displayContacts(HbAbstractItemView::MultiSelection, emptyContactsSet);
+ popup->showPopup();
CNT_EXIT
}
-void CntNamesViewPrivate::handleDeleteMultipleContacts()
+void CntNamesViewPrivate::handleDeleteMultipleContacts( QSet<QContactLocalId> aIds )
{
CNT_ENTRY
- QSet<QContactLocalId> selectedContacts = mFetchView->getSelectedContacts();
-
QContactManager* manager = mViewManager->contactManager( SYMBIAN_BACKEND );
- if ( !mFetchView->wasCanceled() && !selectedContacts.isEmpty() ) {
- foreach ( QContactLocalId id, selectedContacts.values() )
- {
- manager->removeContact( id );
- }
+ foreach ( QContactLocalId id, aIds )
+ {
+ manager->removeContact( id );
}
-
- delete mFetchView;
- mFetchView = NULL;
CNT_EXIT
}
@@ -459,7 +489,7 @@
CNT_ENTRY
CntViewParameters args;
- args.insert(EViewId, commLauncherView);
+ args.insert(EViewId, contactCardView);
if (aContact.localId() == mListModel->myCardId() && aContact.details().count() <= 4)
{
args.insert(EViewId, myCardView);
@@ -485,6 +515,7 @@
if (mMenu)
{
delete mMenu;
+ mMenu = NULL;
}
mMenu = mMenuBuilder->actionMenu( contact, mListModel->myCardId() );
mMenu->setPreferredPos( aPoint );
@@ -514,13 +545,11 @@
CNT_EXIT
}
-void CntNamesViewPrivate::handleDeleteContact( HbAction* aAction )
+void CntNamesViewPrivate::handleDeleteContact( int aAction )
{
CNT_ENTRY
- HbMessageBox *note = static_cast<HbMessageBox*>(sender());
-
- if (note && aAction == note->actions().first())
+ if (aAction == HbMessageBox::Delete)
{
mViewManager->contactManager( SYMBIAN_BACKEND )->removeContact(mHandledContactId);
}