diff -r df6898e696c6 -r e918432ddd92 searchui/stateproviders/searchstateprovider/src/searchuiloader.cpp --- a/searchui/stateproviders/searchstateprovider/src/searchuiloader.cpp Mon Jul 26 12:45:04 2010 +0530 +++ b/searchui/stateproviders/searchstateprovider/src/searchuiloader.cpp Mon Aug 09 12:23:41 2010 +0530 @@ -28,6 +28,8 @@ #include #include #include +#include + const char *SEARCHSTATEPROVIDER_DOCML = ":/xml/searchstateprovider.docml"; const char *TOC_VIEW = "tocView"; const char *TUT_SEARCHPANEL_WIDGET = "searchPanel"; @@ -40,7 +42,8 @@ // SearchUiLoader::SearchUiLoader // --------------------------------------------------------------------------- SearchUiLoader::SearchUiLoader() : - mDocumentLoader(NULL), mView(NULL), mListWidget(NULL), mSearchPanel(NULL),mClient(NULL) + mDocumentLoader(NULL), mView(NULL), mListWidget(NULL), + mSearchPanel(NULL), mClient(NULL), mMainWindow(NULL) { bool ok = false; @@ -96,24 +99,24 @@ mSearchPanel->setCancelEnabled(false); } - mMainWindow = hbInstance->allMainWindows().at(0); + mMainWindow = new SearchMainWindow(); + connect(mMainWindow, SIGNAL(bringvkb()), this, SLOT(slotbringvkb())); + HbAction *action = new HbAction(Hb::DoneNaviAction); connect(action, SIGNAL(triggered()), this, SLOT(slotsendtobackground())); mView->setNavigationAction(action); + mVirtualKeyboard = new HbShrinkingVkbHost(mView); - QCoreApplication::instance()->installEventFilter(this); + + mBringtoForground = true; } // --------------------------------------------------------------------------- // SearchUiLoader::~SearchUiLoader // --------------------------------------------------------------------------- SearchUiLoader::~SearchUiLoader() { - QCoreApplication::instance()->removeEventFilter(this); - - if (mDocumentLoader) - { - delete mDocumentLoader; - } + delete mMainWindow; + delete mDocumentLoader; delete mClient; } // --------------------------------------------------------------------------- @@ -127,20 +130,33 @@ mListWidget->clear(); mSearchPanel->setCriteria(QString()); mMainWindow->lower(); + mBringtoForground = true; } // --------------------------------------------------------------------------- -// SearchUiLoader::event +// SearchUiLoader::slotbringvkb // --------------------------------------------------------------------------- -bool SearchUiLoader::eventFilter(QObject *obj, QEvent *event) +void SearchUiLoader::slotbringvkb() { - if (event->type() == QEvent::ApplicationActivate) + if (mBringtoForground) { if (!mClient) mClient = new TsTaskSettings; mClient->setVisibility(true); - if (!(mListWidget->count())) - mSearchPanel->setFocus(); - return true; + mSearchPanel->setFocus(); + QInputContext *ic = qApp->inputContext(); + if (ic) + { + mBringtoForground = false; + QEvent *event = new QEvent(QEvent::RequestSoftwareInputPanel); + ic->filterEvent(event); + delete event; + } } - return QObject::eventFilter(obj, event); } +// --------------------------------------------------------------------------- +// SearchMainWindow::slotViewReady +// --------------------------------------------------------------------------- +void SearchMainWindow::slotViewReady() + { + emit bringvkb(); + }