--- a/searchui/stateproviders/searchstateprovider/src/searchprogressivestate.cpp Mon May 03 12:32:15 2010 +0300
+++ b/searchui/stateproviders/searchstateprovider/src/searchprogressivestate.cpp Fri May 14 15:53:17 2010 +0300
@@ -14,7 +14,6 @@
* Description: Implementation of the progressive search state.
*
*/
-
#include "searchprogressivestate.h"
#include "indevicehandler.h"
#include <qcpixdocument.h>
@@ -44,27 +43,31 @@
#include <AknInternalIconUtils.h>
#include <AknIconUtils.h>
#include <apgcli.h>
-
+#include <qpluginloader.h>
+#include <eventviewerplugininterface.h>
+#include <noteseditor.h>
+#include <w32std.h>
+#include <apgtask.h>
+#include <apgcli.h>
+#include <AknTaskList.h>
+#include <apacmdln.h>
const char *SEARCHSTATEPROVIDER_DOCML = ":/xml/searchstateprovider.docml";
const char *TOC_VIEW = "tocView";
const char *TUT_SEARCHPANEL_WIDGET = "searchPanel";
const char *TUT_LIST_VIEW = "listView";
-const QSize defaultIconSize(30, 30);
const int totalcategories = 10;
// ---------------------------------------------------------------------------
// SearchProgressiveState::SearchProgressiveState
// ---------------------------------------------------------------------------
-//
SearchProgressiveState::SearchProgressiveState(QState *parent) :
QState(parent), mMainWindow(NULL), mView(NULL), mListView(NULL),
mDocumentLoader(NULL), mModel(NULL), mSearchHandler(NULL),
- mAiwMgr(0), mRequest(0)
+ notesEditor(0), mAiwMgr(0), mRequest(0)
{
mMainWindow = hbInstance->allMainWindows().at(0);
mModel = new QStandardItemModel(this);
-
mAiwMgr = new XQApplicationManager;
mDocumentLoader = new HbDocumentLoader();
@@ -96,8 +99,12 @@
prototype);
if (prototypeListView)
{
+ HbStyle style;
+ qreal x;
+ style.parameter("hb-param-graphic-size-primary-large", x);
+ QSizeF size(x, x);
+ mListViewIconSize = size.toSize();
prototypeListView->setTextFormat(Qt::RichText);
-
}
mListView->setModel(mModel, prototype);
@@ -105,10 +112,8 @@
HbAbstractItemView::All;
noCreationAndRemovalAnimations ^= HbAbstractItemView::Appear;
noCreationAndRemovalAnimations ^= HbAbstractItemView::Disappear;
-
mListView->setEnabledAnimations(noCreationAndRemovalAnimations);
}
-
mSearchPanel = qobject_cast<HbSearchPanel *> (
mDocumentLoader->findWidget(TUT_SEARCHPANEL_WIDGET));
@@ -148,7 +153,6 @@
{
mIconArray.append(getAppIconFromAppId(appUid[i]));
}
-
#ifdef OST_TRACE_COMPILER_IN_USE
//start() the timers to avoid worrying abt having to start()/restart() later
m_categorySearchApiTime.start();
@@ -161,14 +165,12 @@
// ---------------------------------------------------------------------------
// SearchProgressiveState::~SearchProgressiveState
// ---------------------------------------------------------------------------
-//
SearchProgressiveState::~SearchProgressiveState()
{
if (mAiwMgr)
{
delete mAiwMgr;
}
-
if (mModel)
{
delete mModel;
@@ -177,18 +179,18 @@
{
delete mDocumentLoader;
}
-
for (int i = 0; i < mSearchHandlerList.count(); i++)
{
delete mSearchHandlerList.at(i);
}
-
+ if(notesEditor)
+ {
+ delete notesEditor;
+ }
}
-
// ---------------------------------------------------------------------------
// SearchProgressiveState::constructHandlers
// ---------------------------------------------------------------------------
-//
void SearchProgressiveState::constructHandlers()
{
InDeviceHandler* handler = NULL;
@@ -251,16 +253,13 @@
mSearchHandlerList.append(handler);
}
}
-
// ---------------------------------------------------------------------------
// SearchProgressiveState::onEntry
// ---------------------------------------------------------------------------
-//
void SearchProgressiveState::onEntry(QEvent *event)
{
// WMS_LOG << "::onEntry";
QState::onEntry(event);
-
activateSignals();
// If this is not the current view, we're getting back from plugin view
@@ -282,17 +281,14 @@
// ---------------------------------------------------------------------------
// SearchProgressiveState::onExit
// ---------------------------------------------------------------------------
-//
void SearchProgressiveState::onExit(QEvent *event)
{
QState::onExit(event);
deActivateSignals();
}
-
// ---------------------------------------------------------------------------
// SearchProgressiveState::activateSignals
// ---------------------------------------------------------------------------
-//
void SearchProgressiveState::activateSignals()
{
for (int i = 0; i < mSearchHandlerList.count(); i++)
@@ -313,10 +309,8 @@
{
connect(mSearchPanel, SIGNAL(criteriaChanged(QString)), this,
SLOT(startNewSearch(QString)));
-
connect(mSearchPanel, SIGNAL(searchOptionsClicked()), this,
SLOT(setSettings()));
-
connect(mSearchPanel, SIGNAL(exitClicked()), this,
SLOT(cancelSearch()));
}
@@ -324,7 +318,6 @@
{
connect(mModel, SIGNAL(rowsInserted(QModelIndex,int,int)), this,
SLOT(getrowsInserted()));
-
connect(mModel, SIGNAL(rowsRemoved(QModelIndex,int,int)), this,
SLOT(getrowsRemoved()));
}
@@ -332,7 +325,6 @@
// ---------------------------------------------------------------------------
// SearchProgressiveState::deActivateSignals
// ---------------------------------------------------------------------------
-//
void SearchProgressiveState::deActivateSignals()
{
for (int i = 0; i < mSearchHandlerList.count(); i++)
@@ -353,10 +345,8 @@
{
disconnect(mSearchPanel, SIGNAL(criteriaChanged(QString)), this,
SLOT(startNewSearch(QString)));
-
disconnect(mSearchPanel, SIGNAL(searchOptionsClicked()), this,
SLOT(setSettings()));
-
disconnect(mSearchPanel, SIGNAL(exitClicked()), this,
SLOT(cancelSearch()));
}
@@ -364,7 +354,6 @@
{
disconnect(mModel, SIGNAL(rowsInserted(QModelIndex,int,int)), this,
SLOT(getrowsInserted()));
-
disconnect(mModel, SIGNAL(rowsRemoved(QModelIndex,int,int)), this,
SLOT(getrowsRemoved()));
}
@@ -372,13 +361,11 @@
// ---------------------------------------------------------------------------
// SearchProgressiveState::onAsyncSearchComplete
// ---------------------------------------------------------------------------
-//
void SearchProgressiveState::onAsyncSearchComplete(int aError,
int aResultCount)
{
PERF_CAT_API_ENDLOG
PERF_CAT_HITS_ENDLOG
-
if (aError != 0)
{
//some error print logs
@@ -401,7 +388,6 @@
// ---------------------------------------------------------------------------
// SearchProgressiveState::onGetDocumentComplete
// ---------------------------------------------------------------------------
-//
void SearchProgressiveState::onGetDocumentComplete(int aError,
QCPixDocument* aDoc)
{
@@ -411,9 +397,8 @@
QStringList liststr;
QString secondrow = aDoc->excerpt();
QString firstrow;
-
//-------------- html tag creation-------------------
- QString htmlTagPre = QString("<u>");
+ /* QString htmlTagPre = QString("<u>");
QString htmlTagPost = QString("</u>");
int insertpt = secondrow.indexOf(mOriginalString, 0, Qt::CaseInsensitive);
if (insertpt >= 0)
@@ -423,101 +408,90 @@
secondrow.insert(insertpt + mOriginalString.length()
+ htmlTagPre.length(), htmlTagPost);
}
- //--------------------Html Tag Creation completed------------
+*/ //--------------------Html Tag Creation completed------------
QStandardItem* listitem = new QStandardItem();
if (aDoc->baseAppClass().contains("contact"))
{
- QString givename;
- QString familyname;
- bool bgivenname = false;
- bool bfamilyname = false;
- for (int i = 0; i < aDoc->fieldCount(); i++)
+ QStringList docsList = filterDoc(aDoc, "GivenName", "FamilyName");
+ if (docsList.value(0, "").length())
{
- if (!bgivenname && aDoc->field(i).name().contains("GivenName"))
- {
- givename.append(aDoc->field(i).value());
- bgivenname = true;
- }
- if (!bfamilyname && aDoc->field(i).name().contains("FamilyName"))
- {
- familyname.append(aDoc->field(i).value());
- bfamilyname = true;
- }
- if (bgivenname && bfamilyname)
- break;
+ firstrow.append(docsList.at(0));
}
- if (givename.length())
- {
- firstrow.append(givename);
- }
- if (familyname.length())
+ if (docsList.value(1, "").length())
{
if (firstrow.length())
firstrow.append(" ");
- firstrow.append(familyname);
+ firstrow.append(docsList.at(1));
}
if (firstrow.length() == 0)
{
- firstrow = hbTrId("txt_phob_list_unknown");
+ firstrow = hbTrId("txt_phob_dblist_unnamed");
}
liststr << firstrow << secondrow;
listitem->setData(mIconArray.at(0), Qt::DecorationRole);
}
else if (aDoc->baseAppClass().contains("audio"))
{
- firstrow.append(filterDoc(aDoc, "Title"));
+ QStringList audioList = filterDoc(aDoc, "Title", "MediaId");
+ if (audioList.value(0, "").length())
+ {
+ firstrow.append(audioList.at(0));
+ }
if (firstrow.length() == 0)
{
firstrow = hbTrId("txt_mus_dblist_val_unknown4");
}
liststr << firstrow << secondrow;
listitem->setData(mIconArray.at(1), Qt::DecorationRole);
+ if (audioList.value(1, "").length())
+ {
+ listitem->setData(audioList.at(1), Qt::UserRole + 2);
+ }
}
else if (aDoc->baseAppClass().contains("video"))
{
- firstrow.append(filterDoc(aDoc, "Title"));
- if (firstrow.length() == 0)
+ QStringList videoList = filterDoc(aDoc, "Title", "MediaId","Name");
+ if (videoList.value(0, "").length())
{
- firstrow.append(filterDoc(aDoc, "Name"));
+ firstrow.append(videoList.at(0));
+ }
+ if (firstrow.length() == 0 && videoList.value(2, "").length())
+ {
+ firstrow.append(videoList.at(2));
}
liststr << firstrow << secondrow;
listitem->setData(mIconArray.at(2), Qt::DecorationRole);
+ if (videoList.value(1, "").length())
+ {
+ listitem->setData(videoList.at(1), Qt::UserRole + 2);
+ }
}
else if (aDoc->baseAppClass().contains("image"))
{
- firstrow.append(filterDoc(aDoc, "Name"));
+ QStringList imageList = filterDoc(aDoc, "Name", "MediaId");
+ if (imageList.value(0, "").length())
+ {
+ firstrow.append(imageList.at(0));
+ }
liststr << firstrow << secondrow;
listitem->setData(mIconArray.at(3), Qt::DecorationRole);
+ if (imageList.value(1, "").length())
+ {
+ listitem->setData(imageList.at(1), Qt::UserRole + 2);
+ }
}
else if (aDoc->baseAppClass().contains("msg"))
{
- QString subject;
- QString body;
- bool bsubject = false;
- bool bbody = false;
- for (int i = 0; i < aDoc->fieldCount(); i++)
+ QStringList msgList = filterDoc(aDoc, "Subject", "Body");
+ if (msgList.value(0, "").length())
{
- if (!bsubject && aDoc->field(i).name().contains("Subject"))
- {
- subject.append(aDoc->field(i).value());
- bsubject = true;
- }
- if (!bbody && aDoc->field(i).name().contains("Body"))
- {
- body.append(aDoc->field(i).value());
- bbody = true;
- }
- if (bsubject && bbody)
- break;
- }
- if (subject.length())
- {
- firstrow.append(subject);
+ firstrow.append(msgList.at(0));
}
else
{
- firstrow.append(body);
+ if (msgList.value(1, "").length())
+ firstrow.append(msgList.at(1));
}
if (firstrow.length() == 0)
{
@@ -533,7 +507,7 @@
}
else if (aDoc->baseAppClass().contains("calendar"))
{
- firstrow.append(filterDoc(aDoc, "Description"));
+ firstrow.append(filterDoc(aDoc, "Summary"));
if (firstrow.length() == 0)
{
firstrow = hbTrId("txt_calendar_preview_unnamed");
@@ -550,10 +524,12 @@
firstrow = hbTrId("txt_notes_dblist_unnamed");
}
liststr << firstrow << secondrow;
+ listitem->setData(mIconArray.at(7), Qt::DecorationRole);
}
else if (aDoc->baseAppClass().contains("applications"))
{
- liststr << secondrow;
+ firstrow.append(filterDoc(aDoc, "Name"));
+ liststr << firstrow;
bool ok;
listitem->setData(getAppIconFromAppId(TUid::Uid(aDoc->docId().toInt(
&ok, 16))), Qt::DecorationRole);
@@ -569,25 +545,21 @@
}
else if (aDoc->baseAppClass().contains("file"))
{
- firstrow.append(filterDoc(aDoc, "BaseName"));
+ firstrow.append(filterDoc(aDoc, "Name"));
if (firstrow.length() == 0)
firstrow = aDoc->baseAppClass();
liststr << firstrow << secondrow;
listitem->setData(mIconArray.at(9), Qt::DecorationRole);
}
-
listitem->setData(liststr, Qt::DisplayRole);
listitem->setData(aDoc->docId(), Qt::UserRole);
listitem->setData(aDoc->baseAppClass(), Qt::UserRole + 1);
-
mModel->appendRow(listitem);
-
delete aDoc;
}
// ---------------------------------------------------------------------------
// SearchProgressiveState::getSettingCategory
// ---------------------------------------------------------------------------
-//
void SearchProgressiveState::getSettingCategory(int item, bool avalue)
{
mSelectedCategory.insert(item, avalue);
@@ -595,7 +567,6 @@
// ---------------------------------------------------------------------------
// SearchProgressiveState::getrowsInserted
// ---------------------------------------------------------------------------
-//
void SearchProgressiveState::getrowsInserted()
{
mResultparser++;
@@ -613,7 +584,6 @@
// ---------------------------------------------------------------------------
// SearchProgressiveState::getrowsRemoved
// ---------------------------------------------------------------------------
-//
void SearchProgressiveState::getrowsRemoved()
{
if (mModel->rowCount() != 0)
@@ -626,6 +596,9 @@
if (mOriginalString.length())
{
mDatabasecount = 0;
+ /*mSearchString = "$prefix(\"";
+ mSearchString += mOriginalString;
+ mSearchString += "\")";*/
mSearchString = mOriginalString;
mSearchString.append('*');
searchOnCategory(mSearchString);
@@ -635,200 +608,229 @@
// ---------------------------------------------------------------------------
// SearchProgressiveState::openResultitem
// ---------------------------------------------------------------------------
-//
void SearchProgressiveState::openResultitem(QModelIndex index)
{
QStandardItem* item = mModel->itemFromIndex(index);
- QString baseclass = item->data(Qt::UserRole + 1).toString();
+ QList<QVariant> args;
+ bool t;
+ mRequest = NULL;
+ if (item->data(Qt::UserRole + 1).toString().contains("contact"))
+ {
+ mRequest = mAiwMgr->create("com.nokia.services.phonebookservices",
+ "Fetch", "open(int)", false);
- QVariant retValue;
- bool t;
- if (baseclass.contains("contact"))
+ int uid = (item->data(Qt::UserRole)).toInt(&t);
+ args << uid;
+ }
+ else if (item->data(Qt::UserRole + 1).toString().contains("bookmark"))
{
- mRequest = mAiwMgr->create("com.nokia.services.phonebookservices",
- "Fetch", "open(int)", false);
+ }
+ else if (item->data(Qt::UserRole + 1).toString().contains("calendar"))
+ {
+ QDir pluginDir = QDir(QString("z:/resource/qt/plugins/calendar"));
+ QPluginLoader *calAgandaViewerPluginLoader = new QPluginLoader(
+ pluginDir.absoluteFilePath(QString(
+ "agendaeventviewerplugin.qtplugin")));
+
+ calAgandaViewerPluginInstance = qobject_cast<
+ EventViewerPluginInterface *> (
+ calAgandaViewerPluginLoader->instance());
+
+ connect(calAgandaViewerPluginInstance, SIGNAL(viewingCompleted()),
+ this, SLOT(_viewingCompleted()));
+
+ calAgandaViewerPluginInstance->viewEvent(
+ item->data(Qt::UserRole).toInt(),
+ EventViewerPluginInterface::ActionEditDelete, NULL);
+ }
+ else if (item->data(Qt::UserRole + 1).toString().contains("applications"))
+ {
+ TRAPD(err,
+ {LaunchApplicationL(TUid::Uid((item->data(Qt::UserRole)).toString().toInt(&t, 16)));})
+ if (err == KErrNone)
+ {
+ }
+ }
+ else if (item->data(Qt::UserRole + 1).toString().contains("file"))
+ {
+ }
+ else if (item->data(Qt::UserRole + 1).toString().contains("video"))
+ {
+ mRequest = mAiwMgr->create("com.nokia.videos", "IVideoView",
+ "playMedia(QString)", false);
+
+ QString uid = getDrivefromMediaId(
+ item->data(Qt::UserRole + 2).toString());
+ uid.append(':');
+ uid.append(item->data(Qt::UserRole).toString());
+ args << uid;
+ }
+ else if (item->data(Qt::UserRole + 1).toString().contains("audio"))
+ {
+ QString uid = getDrivefromMediaId(
+ item->data(Qt::UserRole + 2).toString());
+ uid.append(':');
+ uid.append(item->data(Qt::UserRole).toString());
+ mRequest = mAiwMgr->create("musicplayer",
+ "com.nokia.symbian.IFileView", "view(QString)", false);
+ args << uid;
+ }
+ else if (item->data(Qt::UserRole + 1).toString().contains("image"))
+ {
+ QString uid = getDrivefromMediaId(
+ item->data(Qt::UserRole + 2).toString());
+ uid.append(':');
+ uid.append(item->data(Qt::UserRole).toString());
+ mRequest = mAiwMgr->create("com.nokia.services.media",
+ "com.nokia.symbian.IFileView", "view(QString)", false);
+ args << uid;
+ }
+ else if (item->data(Qt::UserRole + 1).toString().contains("notes"))
+ {
+ if (!notesEditor)
+ {
+ notesEditor = new NotesEditor(this);
+ }
+ notesEditor->edit(item->data(Qt::UserRole).toInt());
+ }
+ else if (item->data(Qt::UserRole + 1).toString().contains("msg"))
+ {
+ mRequest = mAiwMgr->create("com.nokia.services.hbserviceprovider",
+ "conversationview", "view(int)", false);
+
+ int uid = (item->data(Qt::UserRole)).toInt(&t);
+ args << uid;
+ }
+ if (mRequest)
+ {
connect(mRequest, SIGNAL(requestOk(const QVariant&)), this,
SLOT(handleOk(const QVariant&)));
- // Connect error handling signal or apply lastError function instead.
connect(mRequest, SIGNAL(requestError(int,const QString&)), this,
- SLOT(handleError(int,const QString&)));
-
- if (!mRequest)
- {
- qDebug() << "AIW-ERROR: NULL request";
- return;
- }
-
- int uid = (item->data(Qt::UserRole)).toInt(&t);
- QList<QVariant> args;
- args << uid;
+ SLOT(handleError(int,const QString&)));// Connect error handling signal or apply lastError function instead.
mRequest->setArguments(args);
- // Make the request
- if (!mRequest->send())
+ if (!mRequest->send())// Make the request
{
qDebug() << "AIW-ERROR: Send failed" << mRequest->lastError();
}
- delete mRequest;
-
- }
- else if (baseclass.contains("msg"))
- {
- int uid = (item->data(Qt::UserRole)).toInt(&t);
-
- mRequest = mAiwMgr->create("com.nokia.services.hbserviceprovider",
- "conversationview", "view(qint64)", false);
- connect(mRequest, SIGNAL(requestOk(const QVariant&)), this,
+ disconnect(mRequest, SIGNAL(requestOk(const QVariant&)), this,
SLOT(handleOk(const QVariant&)));
- // Connect error handling signal or apply lastError function instead.
- connect(mRequest, SIGNAL(requestError(int,const QString&)), this,
- SLOT(handleError(int,const QString&)));
-
- if (!mRequest)
- {
- qDebug() << "AIW-ERROR: NULL request";
- return;
- }
-
- QList<QVariant> args;
- args << uid;
- retValue = mRequest->send();
- delete mRequest;
+ disconnect(mRequest, SIGNAL(requestError(int,const QString&)), this,
+ SLOT(handleError(int,const QString&)));// Connect error handling signal or apply lastError function instead.
+ mRequest->deleteLater();
}
- else if (baseclass.contains("video"))
+ else
{
- QString uid = item->data(Qt::UserRole).toString();
- mRequest = mAiwMgr->create("com.nokia.videos", "IVideoView",
- "playMedia(QString)", false);
- connect(mRequest, SIGNAL(requestOk(const QVariant&)), this,
- SLOT(handleOk(const QVariant&)));
- // Connect error handling signal or apply lastError function instead.
- connect(mRequest, SIGNAL(requestError(int,const QString&)), this,
- SLOT(handleError(int,const QString&)));
-
- QList<QVariant> args;
- args << uid;
- retValue = mRequest->send();
- delete mRequest;
+ qDebug() << "AIW-ERROR: NULL request";
+ return;
}
-
}
// ---------------------------------------------------------------------------
// SearchProgressiveState::handleOk
// ---------------------------------------------------------------------------
-//
-void SearchProgressiveState::handleOk(const QVariant& /*var*/)
+void SearchProgressiveState::handleOk(const QVariant& var)
{
-
+ Q_UNUSED(var);
}
// ---------------------------------------------------------------------------
// SearchProgressiveState::handleError
// ---------------------------------------------------------------------------
-//
-void SearchProgressiveState::handleError(int /*ret*/, const QString& /*var*/)
+void SearchProgressiveState::handleError(int ret, const QString& var)
{
-
+ Q_UNUSED(ret);
+ Q_UNUSED(var);
}
// ---------------------------------------------------------------------------
// SearchProgressiveState::createSuggestionLink
// ---------------------------------------------------------------------------
-//
void SearchProgressiveState::createSuggestionLink(bool aFlag)
{
- QStandardItem* listitem = new QStandardItem();
- QString htmlKeyword = QString("<u>%1</u>").arg(mOriginalString);
+ QStandardItem* listitem = new QStandardItem();
if (!aFlag)
{
- QString linkString = QString(hbTrId(
- "txt_search_list_search_for_1_on_2").arg(htmlKeyword));
+ QString linkString = QString(hbTrId("txt_search_list_search_for_1").arg(mOriginalString));
mLinkindex = mModel->rowCount();
listitem->setData(linkString, Qt::DisplayRole);
-
mModel->appendRow(listitem);
}
-
}
// ---------------------------------------------------------------------------
// SearchProgressiveState::noResultsFound
// ---------------------------------------------------------------------------
-//
void SearchProgressiveState::noResultsFound(QString aKeyword)
{
if (aKeyword.length())
{
QStandardItem* listitem = new QStandardItem();
QString noResultMsg = QString("<align=\"center\">" + hbTrId(
- "txt_search_results_no_match_found"));
+ "txt_search_list_no_match_found"));
listitem->setData(noResultMsg, Qt::DisplayRole);
mModel->appendRow(listitem);
}
-
}
// ---------------------------------------------------------------------------
// SearchProgressiveState::clear
// ---------------------------------------------------------------------------
-//
void SearchProgressiveState::clear()
{
if (mModel)
{
- mModel->removeRows(0, mModel->rowCount());
+ mModel->removeRows(0, mModel->rowCount());
}
}
// ---------------------------------------------------------------------------
// SearchProgressiveState::searchOnCategory
// ---------------------------------------------------------------------------
-//
void SearchProgressiveState::searchOnCategory(const QString aKeyword)
{
#ifdef OST_TRACE_COMPILER_IN_USE
- if( mDatabasecount != 0 ){//Search just started.
+ if( mDatabasecount != 0 )
+ {//Search just started.
PERF_CAT_UI_ENDLOG
- }
+ }
PERF_CAT_UI_TIME_RESTART
#endif
mResultparser = 0;
mResultcount = 0;
if (mDatabasecount < mTemplist.count())
{
- QString str = mTemplist.at(mDatabasecount);
- if (str.contains("selectall"))
+ if (mTemplist.at(mDatabasecount).contains("selectall"))
{
- // mSearchHandler = mSearchHandlerList.at(0);
+ mSearchHandler = mSearchHandlerList.at(0);
}
- else if (str.contains("contact"))
+ else if (mTemplist.at(mDatabasecount).contains("contact"))
{
mSearchHandler = mSearchHandlerList.at(1);
}
- else if (str.contains("media"))
+ else if (mTemplist.at(mDatabasecount).contains("media"))
{
mSearchHandler = mSearchHandlerList.at(2);
}
- else if (str.contains("msg"))
+ else if (mTemplist.at(mDatabasecount).contains("msg"))
{
mSearchHandler = mSearchHandlerList.at(3);
}
- else if (str.contains("email"))
+ else if (mTemplist.at(mDatabasecount).contains("email"))
{
mSearchHandler = mSearchHandlerList.at(4);
}
- else if (str.contains("calendar"))
+ else if (mTemplist.at(mDatabasecount).contains("calendar"))
{
mSearchHandler = mSearchHandlerList.at(5);
}
- else if (str.contains("notes"))
+ else if (mTemplist.at(mDatabasecount).contains("notes"))
{
mSearchHandler = mSearchHandlerList.at(6);
}
- else if (str.contains("applications"))
+ else if (mTemplist.at(mDatabasecount).contains("applications"))
{
mSearchHandler = mSearchHandlerList.at(7);
}
- else if (str.contains("file"))
+ else if (mTemplist.at(mDatabasecount).contains("file"))
{
mSearchHandler = mSearchHandlerList.at(8);
}
- else if (str.contains("bookmark"))
+ else if (mTemplist.at(mDatabasecount).contains("bookmark"))
{
mSearchHandler = mSearchHandlerList.at(9);
}
@@ -843,23 +845,20 @@
else if (mDatabasecount >= mTemplist.count())
{
PERF_TOTAL_UI_ENDLOG
- if (mListView->indexCount() == 0 && aKeyword.length() != 0)
+ if (mModel->rowCount() == 0 && aKeyword.length() != 0)
{
noResultsFound(mOriginalString);
createSuggestionLink(0);
}
return;
}
-
}
// ---------------------------------------------------------------------------
// SearchProgressiveState::startNewSearch
// ---------------------------------------------------------------------------
-//
void SearchProgressiveState::startNewSearch(const QString &aKeyword)
{
PERF_CAT_TOTAL_TIME_RESTART
-
mOriginalString = aKeyword.trimmed();
for (int i = 0; i < mSearchHandlerList.count(); i++)
{
@@ -873,6 +872,10 @@
{
mDatabasecount = 0;
mLinkindex = 0;
+ //Prefix query
+ /*mSearchString = "$prefix(\"";
+ mSearchString += mOriginalString;
+ mSearchString += "\")";*/
mSearchString = mOriginalString;
mSearchString.append('*');
searchOnCategory(mSearchString);
@@ -881,7 +884,6 @@
// ---------------------------------------------------------------------------
// SearchProgressiveState::setSettings
// ---------------------------------------------------------------------------
-//
void SearchProgressiveState::setSettings()
{
mTempSelectedCategory = mSelectedCategory;
@@ -890,7 +892,6 @@
// ---------------------------------------------------------------------------
// SearchProgressiveState::_customizeGoButton
// ---------------------------------------------------------------------------
-//
void SearchProgressiveState::_customizeGoButton(bool avalue)
{
if (mSearchPanel)
@@ -908,7 +909,6 @@
// ---------------------------------------------------------------------------
// SearchProgressiveState::settingsaction
// ---------------------------------------------------------------------------
-//
void SearchProgressiveState::settingsaction(bool avalue)
{
if (avalue)
@@ -919,11 +919,7 @@
{
i.next();
j.next();
- if (i.value() == j.value())
- {
-
- }
- else
+ if (i.value() != j.value())
{
startNewSearch(mOriginalString);
break;
@@ -934,11 +930,11 @@
// ---------------------------------------------------------------------------
// SearchProgressiveState::setSelectedCategories
// ---------------------------------------------------------------------------
-//
void SearchProgressiveState::setSelectedCategories()
{
mTemplist.clear();
QMapIterator<int, bool> i(mSelectedCategory);
+ bool isrootsearch = false;
while (i.hasNext())
{
i.next();
@@ -948,7 +944,8 @@
{
case 0:
{
- //mTemplist.append("selectall");
+ isrootsearch = true;
+ // mTemplist.append("selectall");
break;
}
case 1: //Contacts
@@ -991,11 +988,17 @@
}
}
}
+ if (mTemplist.count() == 8)
+ isrootsearch = true;
+ if (isrootsearch)
+ {
+ mTemplist.clear();
+ mTemplist.append("selectall");
+ }
}
// ---------------------------------------------------------------------------
// SearchProgressiveState::cancelSearch
// ---------------------------------------------------------------------------
-//
void SearchProgressiveState::cancelSearch()
{
for (int i = 0; i < mSearchHandlerList.count(); i++)
@@ -1006,7 +1009,6 @@
// ---------------------------------------------------------------------------
// SearchProgressiveState::getAppIconFromAppId
// ---------------------------------------------------------------------------
-//
HbIcon SearchProgressiveState::getAppIconFromAppId(TUid auid)
{
HbIcon icon;
@@ -1014,7 +1016,6 @@
CFbsBitmap* bitmap = NULL;
CFbsBitmap* mask = NULL;
QPixmap pixmap;
-
MAknsSkinInstance* skin = AknsUtils::SkinInstance();
if (skin)
{
@@ -1033,17 +1034,15 @@
aknIcon->SetMask(mask);});
if (err1 == KErrNone)
{
-
}
}
}
if (aknIcon)
- {
+ {
//need to disable compression to properly convert the bitmap
AknIconUtils::DisableCompression(aknIcon->Bitmap());
-
- AknIconUtils::SetSize(aknIcon->Bitmap(), TSize(
- defaultIconSize.width(), defaultIconSize.height()),
+ AknIconUtils::SetSize(aknIcon->Bitmap(), TSize(mListViewIconSize.width(),
+ mListViewIconSize.height()),
EAspectRatioPreservedAndUnusedSpaceRemoved);
if (aknIcon->Bitmap()->Header().iCompression == ENoBitmapCompression)
{
@@ -1067,14 +1066,10 @@
pixmap.setAlphaChannel(mask);});
if (err1 == KErrNone)
{
-
}
}
-
}
-
- pixmap = pixmap.scaled(defaultIconSize,
- Qt::KeepAspectRatioByExpanding);
+ pixmap = pixmap.scaled(mListViewIconSize, Qt::KeepAspectRatioByExpanding);
icon = HbIcon(QIcon(pixmap));
}
return icon;
@@ -1082,7 +1077,6 @@
// ---------------------------------------------------------------------------
// SearchProgressiveState::TDisplayMode2Format
// ---------------------------------------------------------------------------
-//
QImage::Format SearchProgressiveState::TDisplayMode2Format(TDisplayMode mode)
{
QImage::Format format;
@@ -1122,19 +1116,15 @@
// ---------------------------------------------------------------------------
// SearchProgressiveState::fromSymbianCFbsBitmap
// ---------------------------------------------------------------------------
-//
QPixmap SearchProgressiveState::fromSymbianCFbsBitmap(CFbsBitmap *aBitmap)
{
aBitmap->BeginDataAccess();
uchar *data = (uchar *) aBitmap->DataAddress();
TSize size = aBitmap->SizeInPixels();
TDisplayMode displayMode = aBitmap->DisplayMode();
-
- // QImage format must match to bitmap format
QImage image(data, size.iWidth, size.iHeight, TDisplayMode2Format(
- displayMode));
+ displayMode));// QImage format must match to bitmap format
aBitmap->EndDataAccess();
-
// No data copying happens because image format matches native OpenVG format.
// So QPixmap actually points to CFbsBitmap data.
return QPixmap::fromImage(image);
@@ -1142,7 +1132,6 @@
// ---------------------------------------------------------------------------
// SearchProgressiveState::copyBitmapLC
// ---------------------------------------------------------------------------
-//
CFbsBitmap *SearchProgressiveState::copyBitmapLC(CFbsBitmap *input)
{
CFbsBitmap *bmp = new (ELeave) CFbsBitmap();
@@ -1160,7 +1149,6 @@
// ---------------------------------------------------------------------------
// SearchProgressiveState::filterDoc
// ---------------------------------------------------------------------------
-//
QString SearchProgressiveState::filterDoc(const QCPixDocument* aDoc,
const QString& filter)
{
@@ -1173,3 +1161,132 @@
}
return NULL;
}
+// ---------------------------------------------------------------------------
+// SearchProgressiveState::filterDoc
+// ---------------------------------------------------------------------------
+QStringList SearchProgressiveState::filterDoc(const QCPixDocument* aDoc,
+ const QString& filter1, const QString& filter2,
+ const QString& filter3)
+ {
+ QStringList docList;
+ docList.append(QString());
+ docList.append(QString());
+ docList.append(QString());
+ bool bfilter1 = false;
+ bool bfilter2 = false;
+ bool bfilter3 = false;
+ if (!filter3.length())
+ {
+ bfilter3 = true;
+ }
+ for (int i = 0; i < aDoc->fieldCount(); i++)
+ {
+ if (!bfilter1 && aDoc->field(i).name().contains(filter1))
+ {
+ docList.replace(0, aDoc->field(i).value());
+ bfilter1 = true;
+ }
+ if (!bfilter2 && aDoc->field(i).name().contains(filter2))
+ {
+ docList.replace(1, aDoc->field(i).value());
+ bfilter2 = true;
+ }
+ if (!bfilter3 && aDoc->field(i).name().contains(filter3))
+ {
+ docList.replace(2, aDoc->field(i).value());
+ bfilter3 = true;
+ }
+ if (bfilter1 && bfilter2 && bfilter3)
+ break;
+ }
+ return docList;
+ }
+// ---------------------------------------------------------------------------
+// SearchProgressiveState::getDrivefromMediaId
+// ---------------------------------------------------------------------------
+QString SearchProgressiveState::getDrivefromMediaId(QString aMediaId)
+ {
+ TBuf<15> mediaIdBuf(aMediaId.utf16());
+ if (KErrNone == iFs.Connect())
+ {
+ TUint mediaNum;
+ TVolumeInfo vmInfo;
+ TChar driveLetter;
+ TLex lex(mediaIdBuf);
+ lex.Val(mediaNum);
+ TDriveNumber drive = TDriveNumber(KErrNotSupported);
+
+ for (TInt i = 0; i <= EDriveZ; i++)
+ {
+ TInt err = iFs.Volume(vmInfo, i);// Volume() returns KErrNotReady if no volume present.
+ if (err != KErrNotReady)// In this case, check next drive number
+ {
+ if (vmInfo.iUniqueID == mediaNum)
+ {
+ drive = TDriveNumber(i);//Is the drive
+ if (KErrNone == iFs.DriveToChar(drive, driveLetter))
+ {
+ mediaIdBuf.Zero();
+ mediaIdBuf.Append(driveLetter);
+ mediaIdBuf.LowerCase();
+ }
+ break;
+ }
+ }
+ }
+ iFs.Close();
+ }
+ return QString::fromUtf16(mediaIdBuf.Ptr(), mediaIdBuf.Length());
+ }
+// ---------------------------------------------------------------------------
+// SearchProgressiveState::LaunchApplicationL
+// ---------------------------------------------------------------------------
+void SearchProgressiveState::LaunchApplicationL(const TUid aUid)
+ {
+ RWsSession wsSession;
+ User::LeaveIfError(wsSession.Connect());
+ CleanupClosePushL<RWsSession> (wsSession);
+ CAknTaskList *taskList = CAknTaskList::NewL(wsSession);
+ TApaTask task = taskList->FindRootApp(aUid);
+ delete taskList;
+ if (task.Exists())
+ {
+ task.BringToForeground();
+ }
+ else
+ {
+ TApaAppInfo appInfo;
+ TApaAppCapabilityBuf capabilityBuf;
+ RApaLsSession appArcSession;
+ User::LeaveIfError(appArcSession.Connect());
+ CleanupClosePushL<RApaLsSession> (appArcSession);
+ User::LeaveIfError(appArcSession.GetAppInfo(appInfo, aUid));
+ User::LeaveIfError(
+ appArcSession.GetAppCapability(capabilityBuf, aUid));
+ TApaAppCapability &caps = capabilityBuf();
+ TFileName appName = appInfo.iFullName;
+ CApaCommandLine *cmdLine = CApaCommandLine::NewLC();
+ cmdLine->SetExecutableNameL(appName);
+ if (caps.iLaunchInBackground)
+ {
+ cmdLine->SetCommandL(EApaCommandBackground);
+ }
+ else
+ {
+ cmdLine->SetCommandL(EApaCommandRun);
+ }
+ //cmdLine->SetTailEndL(aParam);
+ User::LeaveIfError(appArcSession.StartApp(*cmdLine));
+ CleanupStack::PopAndDestroy(cmdLine);
+ CleanupStack::PopAndDestroy(&appArcSession);
+ }
+ CleanupStack::PopAndDestroy(&wsSession);
+ }
+// ---------------------------------------------------------------------------
+// SearchProgressiveState::_viewingCompleted
+// ---------------------------------------------------------------------------
+void SearchProgressiveState::_viewingCompleted()
+ {
+ if (calAgandaViewerPluginInstance)
+ calAgandaViewerPluginInstance->deleteLater();
+ }