Revision: 201015
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Mon, 03 May 2010 12:24:47 +0300
changeset 15 c0dfc135a46c
parent 13 1eb8015a8491
child 16 224347f45dc0
child 18 375271912456
child 24 bce8d4d2cc72
Revision: 201015 Kit: 201018
userguide/Userguide.pro
userguide/inc/HelpCategoryView.h
userguide/inc/HelpCommon.h
userguide/inc/HelpContentsView.h
userguide/inc/HelpDataProvider.h
userguide/inc/HelpDocumentLoader.h
userguide/inc/HelpMainWindow.h
userguide/inc/HelpUtils.h
userguide/resources/Userguide.qrc
userguide/resources/qtg_large_help.svg
userguide/rom/userguide.iby
userguide/src/HelpCategoryView.cpp
userguide/src/HelpContentsView.cpp
userguide/src/HelpDataProvider.cpp
userguide/src/HelpDocumentLoader.cpp
userguide/src/HelpMainWindow.cpp
userguide/src/HelpProxyModel.cpp
userguide/src/HelpStandardItem.cpp
userguide/src/HelpUtils.cpp
userguide/src/main.cpp
--- a/userguide/Userguide.pro	Fri Apr 16 14:53:45 2010 +0300
+++ b/userguide/Userguide.pro	Mon May 03 12:24:47 2010 +0300
@@ -49,10 +49,6 @@
 			src/HelpProxyModel.cpp \
 			src/HelpStandardItem.cpp
 
-win32 {
-    SOURCES += src/HelpUtils_win.cpp
-}
-
 symbian {
 	TARGET.UID3 = 0x10005234
   	TARGET.CAPABILITY = CAP_APPLICATION
@@ -62,6 +58,7 @@
   	include(rom/userguide.pri)
 }
 				
+ICON = resources/qtg_large_help.svg
 RESOURCES += resources/Userguide.qrc
 
 debug: DESTDIR = ./debug
--- a/userguide/inc/HelpCategoryView.h	Fri Apr 16 14:53:45 2010 +0300
+++ b/userguide/inc/HelpCategoryView.h	Mon May 03 12:24:47 2010 +0300
@@ -21,10 +21,14 @@
 #include <hbview.h>
 
 #include "HelpCommon.h"
+#include "HelpDocumentLoader.h"
 
 class HbTreeView;
-class HbToolBar;
+class HbListView;
 class HbSearchPanel;
+class QStandardItem;
+class HbStaticVkbHost;
+class HbGroupBox;
 
 class HelpCategoryView : public HbView
 {
@@ -36,12 +40,17 @@
 	void init();
 
 private:
+	void initDocMl();
 	void initAllList();
 	void initSearchList();
 	void initSearchPanel();
-	void initToolbar();
 	void initBackAction();
+	void initEmptyLabel();
+	void initVirtualKeyboard();
 	
+private:
+	HbGroupBox* groupBox();
+
 public:
     enum ViewMode
     {
@@ -54,28 +63,19 @@
 signals:
     void activateView(HelpViewName viewName);
     
-signals: // from tollbar event
-    void showAllList();
-    void showFindList();
-    void showOnlineSupport();
+private:
+	void updateVisibleItems(bool visible);
+	void ResetSearchPanel();	
 
 private:
-	void RefreshToolbarText(bool isLandscape);
-	void RefreshTitlebarVisibility();
-	void ResetSearchPanel();
-	
+	void expandCollapseAllList(QStandardItem* item, bool expand);
+
 private slots: // handle system event
     void onCurrentViewChanged(HbView *view);
-    void onOrientationChanged(Qt::Orientation orientation);
 
 private slots: // handle button action
     void onBackAction();
     
-private slots: // handle tollbar event
-    void onToolbarAll()             { emit showAllList(); };
-    void onToolbarFind()            { emit showFindList(); };
-    void onToolbarOnlineSupport()   { emit showOnlineSupport(); };
-
 private slots: // handle list event
     void onAllListActivated(const QModelIndex& index);
     void onSearchListActivated(const QModelIndex& index);
@@ -84,13 +84,22 @@
 	void onSearchPanelExitClicked();
 	void onSearchPanelCriteriaChanged(const QString &criteria);
 
+private slots:
+	void onExpandAll();
+	void onCollapseAll();
+
+private slots: // handle virtual keyboard event
+    void onHandleKeypadOpen();
+    void onHandleKeypadClose();
+
 private:
-    ViewMode           mViewMode;
-	HbTreeView*        mListAll;
-	HbTreeView*        mListSearch;
-	HbSearchPanel*     mSearchPanel;
-	HbToolBar*         mToolBar;
-	HbAction* mSoftKeyAction;
+    ViewMode			mViewMode;
+	HbTreeView*			mListAll;
+	HbListView*			mListSearch;
+	HbSearchPanel*		mSearchPanel;
+	HbAction*			mSoftKeyAction;
+	HbStaticVkbHost*	mVirtualKeyboard;
+	HelpUIBuilder		mBuilder;
 };
 
 #endif //HELPCATEGORYVIEW_H
--- a/userguide/inc/HelpCommon.h	Fri Apr 16 14:53:45 2010 +0300
+++ b/userguide/inc/HelpCommon.h	Mon May 03 12:24:47 2010 +0300
@@ -24,7 +24,7 @@
 const char* const BACKSLASH = "/";
 const char* const SPECIALCHAR = "+";
 const char* const HASHMARK = "#";
-
+const char* const COLON = ":";
 // help content file name
 const char* const XHTMLPATH = "resource/xhtml/";
 const char* const CONTENTSZIP = "contents.zip";
@@ -45,14 +45,16 @@
 const char* const URL_LINK_SUPPORT= "Link to Nokia.com/support";
 
 // text
-const char* const TXT_TITLE = "txt_user_guide_title_user_guide";
 const char* const TXT_BUTTON_ALL = "txt_common_button_all";
 const char* const TXT_BUTTON_FIND = "txt_common_button_find";
 const char* const TXT_BUTTON_LINK_SUPPORT = "txt_user_guide_button_link_to_nokiacomsupport";
+const char* const TXT_SETLABEL_SEARCH = "txt_user_guide_setlabel_search";
+const char* const TXT_SETLABEL_SEARCH_RESULTS = "txt_user_guide_setlabel_search_results";
 
 // docml
 const char* const QRC_DOCML_CATEGORY = ":/xml/categoryView.docml";
 const char* const QRC_DOCML_CONTENTS = ":/xml/contentsView.docml";
+const char* const QRC_DOCML_TOOLBAR = ":/xml/toolbar.docml";
 const char* const DOCML_ACTION_ALL = "action_all";
 const char* const DOCML_ACTION_SEARCH = "action_find";
 const char* const DOCML_ACTION_LINK_NOKIA = "action_online_support";
@@ -67,6 +69,10 @@
 const char* const DOCML_LAYOUT_CATEGORY_ALL = "layout_category_all";
 const char* const DOCML_LAYOUT_CATEGORY_SEARCH = "layout_category_find";
 const char* const DOCML_LAYOUT_CATEGORY_SEARCH_NO_SRHPAL = "layout_category_find_no_searchpanel";
+const char* const DOCML_GROUPBOX = "groupBox";
+const char* const DOCML_LAYOUT_CATEGORY_SEARCH_NO_MATCH = "layout_category_find_no_match";
+const char* const DOCML_LAYOUT_CATEGORY_SEARCH_NO_SRHPAL_NO_MATCH = "layout_category_find_no_searchpanel_no_match";
+const char* const DOCML_NO_MATCH_LABEL = "no_match_label";
 
 
 // enum
--- a/userguide/inc/HelpContentsView.h	Fri Apr 16 14:53:45 2010 +0300
+++ b/userguide/inc/HelpContentsView.h	Mon May 03 12:24:47 2010 +0300
@@ -18,11 +18,12 @@
 #ifndef HELPCONTENTSVIEW_H
 #define HELPCONTENTSVIEW_H
 
-#include <QUrl.h>
+#include <QUrl>
 
 #include <hbview.h>
 
 #include "HelpCommon.h"
+#include "HelpDocumentLoader.h"
 
 class BrowserWrapper;
 
@@ -38,16 +39,12 @@
 	void init();
 	
 private:
+	void initDocMl();
     void initBackAction();
 	
 signals:
     void activateView(HelpViewName viewName);
     
-signals: // from tollbar event
-    void showAllList();
-    void showFindList();
-    void showOnlineSupport();
-
 private:
 	bool openApplication(const QUrl& url);
 	bool openExternalLink(const QUrl& url);
@@ -59,11 +56,6 @@
 private slots: // handle button action
     void onBackAction();
     
-private slots: // handle tollbar event
-    void onToolbarAll()             { emit showAllList(); };
-    void onToolbarFind()            { emit showFindList(); };
-    void onToolbarOnlineSupport()   { emit showOnlineSupport(); };
-
 private slots: // handle browser event
 	void onLinkClicked(const QUrl& url);
 	void onUrlChanged(const QUrl& url);
@@ -71,6 +63,7 @@
 private:
     BrowserWrapper*     mBrowser;
     HbAction* mSoftKeyAction;
+	HelpUIBuilder mBuilder;
 };
 
 #endif //HELPCONTENTSVIEW_H
--- a/userguide/inc/HelpDataProvider.h	Fri Apr 16 14:53:45 2010 +0300
+++ b/userguide/inc/HelpDataProvider.h	Mon May 03 12:24:47 2010 +0300
@@ -44,16 +44,18 @@
 	void createHelpCategory();
 	void createBuiltInCategory(const QString& path);
 	void constructAppHelp(const QString& path);
-	void constructKeywordModel(const QString& path);
+	void constructKeywordModel(const QString& title, const QString& uid, const QString& href);
+//	void searchInAllData(HelpStandardItem* item, const QString& key=QString());
+//	void searchInResult(const QString& key=QString());
 	HelpStandardItem* constructCategory2(const QString& title, const QString& uid);
 	HelpStandardItem* findItemWithHref(HelpStandardItem* itemParent, const QString& href);
 
 private:
-	QStandardItemModel*    mHelpModel;         //category tree model
-	QStandardItemModel*    mKeywordModel;      //keyword list model
-	HelpProxyModel*        mSearhResultModel;  //search result proxy model of keyword model
-	
-	QString                mHelpContentRoot;
+	QStandardItemModel*		mHelpModel;         //category tree model
+	QStandardItemModel*		mKeywordModel;      //keyword list model
+	HelpProxyModel*		mSearhResultModel;  //search result proxy model of keyword model	
+	QString					mHelpContentRoot;
+	QString					mLastSrhKey;
 
 };
 
--- a/userguide/inc/HelpDocumentLoader.h	Fri Apr 16 14:53:45 2010 +0300
+++ b/userguide/inc/HelpDocumentLoader.h	Mon May 03 12:24:47 2010 +0300
@@ -20,21 +20,27 @@
 
 #include <hbdocumentloader.h>
 
+class HelpDocumentLoader : public HbDocumentLoader
+{
+private:
+    virtual QObject* createObject(const QString& type, const QString& name);
+};
+
 class HelpUIBuilder
 {
 public:
-    static void destroyInstance();
-    static QObjectList load(const QString& fileName);
-    static QObjectList load(const QString& fileName, const QString& section);
-    static QGraphicsWidget* findWidget(const QString& name);
-    static QObject* findObject(const QString& name);
+	void setObjectTree(QObjectList roots);
+    QObjectList load(const QString& fileName);
+    QObjectList load(const QString& fileName, const QString& section);
+    QGraphicsWidget* findWidget(const QString& name);
+    QObject* findObject(const QString& name);
 
 public:
-    template<class T> static T findWidget(const QString& name) { return qobject_cast<T>(findWidget(name)); }
-    template<class T> static T findObject(const QString& name) { return qobject_cast<T>(findObject(name)); }
+    template<class T> T findWidget(const QString& name) { return qobject_cast<T>(findWidget(name)); }
+    template<class T> T findObject(const QString& name) { return qobject_cast<T>(findObject(name)); }
     
 private:
-    static HbDocumentLoader* instance();
+    HelpDocumentLoader mDocLoader;
 };
 
 
--- a/userguide/inc/HelpMainWindow.h	Fri Apr 16 14:53:45 2010 +0300
+++ b/userguide/inc/HelpMainWindow.h	Mon May 03 12:24:47 2010 +0300
@@ -21,9 +21,11 @@
 #include <hbmainwindow.h>
 
 #include "HelpCommon.h"
+#include "HelpDocumentLoader.h"
 
 class HelpCategoryView;
 class HelpContentsView;
+class HbToolBar;
 
 class HelpMainWindow : public HbMainWindow
 {
@@ -39,7 +41,8 @@
 private: // activate views
 	void activateCategoryView();
 	void activateContentsView();
-	void initBackAction();
+	void initToolbar();
+	void RefreshToolbarText(Qt::Orientation orientation);
 	
 private:
 	void connectViewSignal(const QObject *object);
@@ -47,14 +50,19 @@
 signals:
 	void backActionSignal();
 	
-private slots: // handle view event
-    void onShowAllList();
-    void onShowFindList();
-    void onShowOnlineSupport();
+private slots: // handle tollbar event
+    void onToolbarAll();
+    void onToolbarFind();
+    void onToolbarOnlineSupport();
+
+private slots:
+	void onOrientationChanged(Qt::Orientation orientation);
 
 private:
 	HelpCategoryView* mCategoryView;
 	HelpContentsView* mContentsView;
+	HbToolBar*         mToolBar;
+	HelpUIBuilder mBuilder;
 
 };
 
--- a/userguide/inc/HelpUtils.h	Fri Apr 16 14:53:45 2010 +0300
+++ b/userguide/inc/HelpUtils.h	Mon May 03 12:24:47 2010 +0300
@@ -29,6 +29,8 @@
 	static QString UILocaleFromQtToSymbian();
 	static Qt::Orientation defaultOrientation();
 	static Qt::SortOrder sortOrder();
+	static int findStr(const QString& strFrom, const QString& strToFind);
+	static int compareStr(const QString& str1, const QString& str2);
 };
 
 #endif //HELPUTILS_H
--- a/userguide/resources/Userguide.qrc	Fri Apr 16 14:53:45 2010 +0300
+++ b/userguide/resources/Userguide.qrc	Mon May 03 12:24:47 2010 +0300
@@ -3,11 +3,11 @@
 	<qresource prefix="/xml">
 		<file alias="categoryView.docml">xml/categoryView.docml</file>
 		<file alias="contentsView.docml">xml/contentsView.docml</file>
-	</qresource>
+    <file alias="toolbar.docml">xml/toolbar.docml</file>    
+  </qresource>
 	
 	<qresource prefix= "/images">
 		<file alias="show_all.svg">images/qtg_mono_show_all.svg</file>
-		<file alias="search.svg">images/qtg_mono_search.svg</file>
 		<file alias="link_nokia.svg">images/qtg_mono_link_nokia.svg</file>
 	</qresource>
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/userguide/resources/qtg_large_help.svg	Mon May 03 12:24:47 2010 +0300
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
+<svg baseProfile="tiny" height="60" viewBox="0 0 60 60" width="60" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<rect fill="none" height="60" width="60"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_1" x1="30" x2="30" y1="8.16" y2="51.02">
+<stop offset="0" stop-color="#E5FFB2"/>
+<stop offset="0.39" stop-color="#6AAB18"/>
+<stop offset="0.68" stop-color="#247307"/>
+<stop offset="1" stop-color="#C2FF4A"/>
+</linearGradient>
+<circle cx="29.998" cy="29.385" fill="url(#SVGID_1)" r="21.427"/>
+<radialGradient cx="30.2" cy="10.41" gradientUnits="userSpaceOnUse" id="SVGID_2" r="39.38">
+<stop offset="0" stop-color="#AFED23"/>
+<stop offset="0.81" stop-color="#358C0C"/>
+<stop offset="1" stop-color="#67AD1A"/>
+</radialGradient>
+<path d="M29.998,50.2c-11.478,0-20.815-9.337-20.815-20.814S18.521,8.571,29.998,8.571 c11.477,0,20.814,9.337,20.814,20.815S41.475,50.2,29.998,50.2L29.998,50.2z" fill="url(#SVGID_2)"/>
+<path d="M23.264,21.626v-3.515c2.128-0.49,4.146-0.735,6.06-0.735 c2.821,0,4.986,0.547,6.492,1.642c1.507,1.093,2.26,2.697,2.26,4.815c0,1.231-0.291,2.274-0.869,3.129 c-0.581,0.854-4.583,4.875-4.978,5.425c-0.396,0.55-0.592,1.201-0.592,1.955v0.752h-5.615V34.09c0-1.22,0.267-2.25,0.799-3.094 c0.532-0.843,1.461-1.887,2.789-3.13c1.041-0.969,2.332-3.217,2.332-3.695c0-2.163-1.303-3.245-3.91-3.245 C26.562,20.927,24.974,21.16,23.264,21.626z M28.803,44.69c-0.944,0-1.757-0.335-2.439-1.005c-0.68-0.67-1.021-1.488-1.021-2.457 c0-0.957,0.338-1.775,1.013-2.457c0.676-0.682,1.491-1.022,2.447-1.022c0.957,0,1.775,0.341,2.458,1.022s1.022,1.5,1.022,2.457 c0,0.969-0.341,1.787-1.022,2.457C30.58,44.355,29.76,44.69,28.803,44.69z" fill-opacity="0.2" stroke-opacity="0.2"/>
+<path d="M23.264,20.78v-3.515c2.128-0.49,4.146-0.735,6.06-0.735 c2.821,0,4.986,0.547,6.492,1.642c1.507,1.093,2.26,2.697,2.26,4.815c0,1.231-0.291,2.274-0.869,3.129 c-0.581,0.854-4.583,4.875-4.978,5.425c-0.396,0.55-0.592,1.202-0.592,1.954v0.754h-5.615v-1.005c0-1.22,0.267-2.251,0.799-3.094 c0.532-0.843,1.461-1.887,2.789-3.13c1.041-0.969,2.332-3.217,2.332-3.695c0-2.163-1.303-3.245-3.91-3.245 C26.562,20.081,24.974,20.314,23.264,20.78z M28.803,43.844c-0.944,0-1.757-0.334-2.439-1.004c-0.68-0.67-1.021-1.489-1.021-2.458 c0-0.956,0.338-1.775,1.013-2.457c0.676-0.682,1.491-1.022,2.447-1.022c0.957,0,1.775,0.341,2.458,1.022 c0.683,0.681,1.022,1.501,1.022,2.457c0,0.969-0.341,1.788-1.022,2.458C30.58,43.51,29.76,43.844,28.803,43.844z" fill-opacity="0.2" stroke-opacity="0.2"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_3" x1="30.67" x2="30.67" y1="15.45" y2="42.99">
+<stop offset="0" stop-color="#F6FDFF"/>
+<stop offset="1" stop-color="#ADB3B5"/>
+</linearGradient>
+<path d="M23.264,19.79v-3.515c2.128-0.491,4.146-0.735,6.06-0.735c2.821,0,4.986,0.546,6.492,1.642 c1.507,1.093,2.26,2.697,2.26,4.814c0,1.232-0.291,2.274-0.869,3.129C36.625,25.98,32.623,30,32.229,30.55 c-0.396,0.55-0.592,1.202-0.592,1.955v0.753h-5.615v-1.005c0-1.22,0.267-2.25,0.799-3.093c0.532-0.843,1.461-1.887,2.789-3.13 c1.041-0.968,2.332-3.216,2.332-3.694c0-2.163-1.303-3.245-3.91-3.245C26.562,19.091,24.974,19.323,23.264,19.79z M28.803,42.854 c-0.944,0-1.757-0.334-2.439-1.004c-0.68-0.67-1.021-1.489-1.021-2.457c0-0.957,0.338-1.775,1.013-2.458 c0.676-0.681,1.491-1.022,2.447-1.022c0.957,0,1.775,0.342,2.458,1.022c0.683,0.682,1.022,1.501,1.022,2.458 c0,0.968-0.341,1.787-1.022,2.457C30.58,42.52,29.76,42.854,28.803,42.854z" fill="url(#SVGID_3)"/>
+<rect fill="none" height="59.996" width="59.996"/>
+</svg>
--- a/userguide/rom/userguide.iby	Fri Apr 16 14:53:45 2010 +0300
+++ b/userguide/rom/userguide.iby	Mon May 03 12:24:47 2010 +0300
@@ -24,6 +24,7 @@
 
 file=ABI_DIR\BUILD_DIR\Userguide.exe             SHARED_LIB_DIR\Userguide.exe
 
+data = DATAZ_\APP_RESOURCE_DIR\Userguide.mif                    APP_RESOURCE_DIR\Userguide.mif
 HB_UPGRADABLE_APP_REG_RSC(Userguide)
 S60_APP_RESOURCE(Userguide)
 
--- a/userguide/src/HelpCategoryView.cpp	Fri Apr 16 14:53:45 2010 +0300
+++ b/userguide/src/HelpCategoryView.cpp	Mon May 03 12:24:47 2010 +0300
@@ -21,15 +21,18 @@
 #include <hbmainwindow.h>
 #include <hbapplication.h>
 #include <hbaction.h>
+#include <hbtoolbar.h>
+#include <hblabel.h>
 
 #include <hbtreeview.h>
-#include <hbtoolbar.h>
+#include <hblistview.h>
 #include <hbsearchpanel.h>
 #include <hbscrollbar.h>
 #include <hblineedit.h>
 #include <hbmenu.h>
+#include <hbstaticvkbhost.h>
+#include <hbgroupbox.h>
 
-#include "HelpDocumentLoader.h"
 #include "HelpDataProvider.h"
 #include "HelpProxyModel.h"
 
@@ -42,8 +45,7 @@
 mViewMode(ViewModeNull), 
 mListAll(NULL), 
 mListSearch(NULL), 
-mSearchPanel(NULL), 
-mToolBar(NULL)
+mSearchPanel(NULL)
 {
 }
 
@@ -56,16 +58,32 @@
 
 void HelpCategoryView::init()
 {
+	initDocMl();
     initBackAction();
     initAllList();
     initSearchList();
     initSearchPanel();
-    initToolbar();
+	initVirtualKeyboard();
+	initEmptyLabel();
 
     switchViewMode(ViewModeAll);
     
     connect(mainWindow(), SIGNAL(currentViewChanged(HbView*)), this, SLOT(onCurrentViewChanged(HbView*)));
-    connect(mainWindow(), SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(onOrientationChanged(Qt::Orientation)));
+}
+
+void HelpCategoryView::initDocMl()
+{
+ // Create widget hierarchy
+    setObjectName( DOCML_VIEW_CATEGORY );
+
+    // List existing root elements - this allows us to refer to objects in the XML 
+    // which are created outside the document.
+    QObjectList roots;
+    roots.append( this );
+
+	mBuilder.setObjectTree(roots);
+
+    mBuilder.load(QRC_DOCML_CATEGORY);
 }
 
 void HelpCategoryView::initBackAction()
@@ -76,7 +94,7 @@
 
 void HelpCategoryView::initAllList()
 {
-    mListAll = HelpUIBuilder::findWidget<HbTreeView*>(DOCML_LIST_CATEGORY_ALL);
+    mListAll = mBuilder.findWidget<HbTreeView*>(DOCML_LIST_CATEGORY_ALL);
     mListAll->setHorizontalScrollBarPolicy(HbScrollArea::ScrollBarAlwaysOff);
     mListAll->setModel(HelpDataProvider::instance()->getCategoryData());
     connect(mListAll, SIGNAL(activated(const QModelIndex&)), this, SLOT(onAllListActivated(const QModelIndex&)));
@@ -84,29 +102,35 @@
 
 void HelpCategoryView::initSearchList()
 {
-    mListSearch = HelpUIBuilder::findWidget<HbTreeView*>(DOCML_LIST_CATEGORY_SEARCH);
+    mListSearch = mBuilder.findWidget<HbListView*>(DOCML_LIST_CATEGORY_SEARCH);
     mListSearch->setHorizontalScrollBarPolicy(HbScrollArea::ScrollBarAlwaysOff);
     mListSearch->setModel(HelpDataProvider::instance()->getSearchData());
     connect(mListSearch, SIGNAL(activated(const QModelIndex&)), this, SLOT(onSearchListActivated(const QModelIndex&)));
 }
 void HelpCategoryView::initSearchPanel()
 {
-    mSearchPanel = HelpUIBuilder::findWidget<HbSearchPanel*>(DOCML_SEARCH_PANEL_CATEGORY);
+    mSearchPanel = mBuilder.findWidget<HbSearchPanel*>(DOCML_SEARCH_PANEL_CATEGORY);
     connect(mSearchPanel, SIGNAL(exitClicked()), this, SLOT(onSearchPanelExitClicked()));
     connect(mSearchPanel, SIGNAL(criteriaChanged(const QString&)), this, SLOT(onSearchPanelCriteriaChanged(const QString&)));
 }
 
-void HelpCategoryView::initToolbar()
+void HelpCategoryView::initVirtualKeyboard()
 {
-    mToolBar = HelpUIBuilder::findWidget<HbToolBar*>(DOCML_TOOLBAR);
-
-    HbAction* allAction = HelpUIBuilder::findObject<HbAction*>(DOCML_ACTION_ALL);
-    HbAction* findAction = HelpUIBuilder::findObject<HbAction*>(DOCML_ACTION_SEARCH);
-    QActionGroup* toolBarActionGroup = new QActionGroup(mToolBar);
-    allAction->setActionGroup(toolBarActionGroup);
-    findAction->setActionGroup(toolBarActionGroup);
+	mVirtualKeyboard = new HbStaticVkbHost(this);
+    connect(mVirtualKeyboard, SIGNAL(keypadOpened()), this, SLOT(onHandleKeypadOpen()));
+    connect(mVirtualKeyboard, SIGNAL(keypadClosed()), this, SLOT(onHandleKeypadClose()));
 }
 
+void HelpCategoryView::initEmptyLabel()
+{
+	HbLabel* label = mBuilder.findWidget<HbLabel*>(DOCML_NO_MATCH_LABEL);
+	label->setFontSpec(HbFontSpec(HbFontSpec::Primary));
+}
+
+HbGroupBox* HelpCategoryView::groupBox()
+{
+	return mBuilder.findWidget<HbGroupBox*>(DOCML_GROUPBOX);
+}
 
 ////////////////////////////////////////////////////////////////////////////////////////////
 
@@ -117,34 +141,44 @@
     mViewMode = viewMode;
     if(ViewModeAll == viewMode)
     {
-        HelpUIBuilder::load(QRC_DOCML_CATEGORY, DOCML_LAYOUT_CATEGORY_ALL);
+        mBuilder.load(QRC_DOCML_CATEGORY, DOCML_LAYOUT_CATEGORY_ALL);
+		toolBar()->show();
     }
     else if(ViewModeSearch == viewMode)
     {
-        HelpUIBuilder::load(QRC_DOCML_CATEGORY, DOCML_LAYOUT_CATEGORY_SEARCH);
+//        mBuilder.load(QRC_DOCML_CATEGORY, DOCML_LAYOUT_CATEGORY_SEARCH);
+		ResetSearchPanel();
     }
-
-    RefreshTitlebarVisibility();
 }
 
-
 ////////////////////////////////////////////////////////////////////////////////////////////
 
-void HelpCategoryView::RefreshToolbarText(bool isLandscape)
+void HelpCategoryView::expandCollapseAllList(QStandardItem* item, bool expand)
 {
-    HbAction* tollbarAction = HelpUIBuilder::findObject<HbAction*>(DOCML_ACTION_ALL);
-    tollbarAction->setText(isLandscape ? qtTrId(TXT_BUTTON_ALL) : QString());
-
-    tollbarAction = HelpUIBuilder::findObject<HbAction*>(DOCML_ACTION_SEARCH);
-    tollbarAction->setText(isLandscape ? qtTrId(TXT_BUTTON_FIND) : QString());
-
-    tollbarAction = HelpUIBuilder::findObject<HbAction*>(DOCML_ACTION_LINK_NOKIA);
-    tollbarAction->setText(isLandscape ? qtTrId(TXT_BUTTON_LINK_SUPPORT) : QString());
+	if(item->rowCount() <= 0)
+	{
+		return;
+	}
+	mListAll->setExpanded(item->index(),expand);
+	for(int i = 0; i < item->rowCount(); i++)
+	{		
+		expandCollapseAllList(item->child(i),expand);
+	}
 }
 
-void HelpCategoryView::RefreshTitlebarVisibility()
+////////////////////////////////////////////////////////////////////////////////////////////
+
+void HelpCategoryView::updateVisibleItems(bool visible)
 {
-	setTitleBarVisible(!(mSearchPanel->isVisible()));
+	static Hb::SceneItems items = Hb::TitleBarItem | Hb::StatusBarItem;
+	if(visible)
+	{
+		showItems(items);
+	}
+	else
+	{
+		hideItems(items);
+	}
 }
 
 void HelpCategoryView::ResetSearchPanel()
@@ -175,19 +209,16 @@
     }
 }
 
-void HelpCategoryView::onOrientationChanged(Qt::Orientation orientation)
-{
-    bool isLandscape = (Qt::Horizontal==orientation);
-    RefreshToolbarText(isLandscape);
-}
-
-
 ///////////////////////////////////////////////////////////////////////////////////////
 // handle button back action
 
 void HelpCategoryView::onBackAction()
 {
-	if(this == mainWindow()->currentView())
+	if(ViewModeSearch == mViewMode)
+	{
+		switchViewMode(ViewModeAll);
+	}
+	else
 	{
 		HbApplication::exit();
 	}
@@ -231,14 +262,75 @@
 
 void HelpCategoryView::onSearchPanelExitClicked()
 {
-    setTitleBarVisible(true);
-    HelpUIBuilder::load(QRC_DOCML_CATEGORY, DOCML_LAYOUT_CATEGORY_SEARCH_NO_SRHPAL);
+	if(mListSearch->model()->rowCount() == 0)
+	{
+		mBuilder.load(QRC_DOCML_CATEGORY, DOCML_LAYOUT_CATEGORY_SEARCH_NO_SRHPAL_NO_MATCH);
+	}
+	else
+	{
+		mBuilder.load(QRC_DOCML_CATEGORY, DOCML_LAYOUT_CATEGORY_SEARCH_NO_SRHPAL);
+	}
+	toolBar()->show();
 }
 
 void HelpCategoryView::onSearchPanelCriteriaChanged(const QString &criteria)
 {
-    mListSearch->setModel(HelpDataProvider::instance()->getSearchData(criteria));
-    mListSearch->update();
+    HelpDataProvider::instance()->getSearchData(criteria);
+	if(mListSearch->model()->rowCount() == 0)
+	{
+		mBuilder.load(QRC_DOCML_CATEGORY, DOCML_LAYOUT_CATEGORY_SEARCH_NO_MATCH);
+	}
+	else
+	{
+		mBuilder.load(QRC_DOCML_CATEGORY, DOCML_LAYOUT_CATEGORY_SEARCH);
+	}
+
+	toolBar()->hide();
+
+	if(criteria.isEmpty())
+	{
+		groupBox()->setHeading(hbTrId(TXT_SETLABEL_SEARCH));
+	}
+	else
+	{
+		QString heading = qtTrId(TXT_SETLABEL_SEARCH_RESULTS);
+		heading.append(COLON);
+		heading.append(criteria);
+		groupBox()->setHeading(heading);
+	}
+}
+
+////////////////////////////////////////////////////////////////////////////////////////////
+// handle virtual keyboard event
+
+void HelpCategoryView::onHandleKeypadOpen()
+{
+	updateVisibleItems(false);
+    qreal heightToSet = mainWindow()->layoutRect().height() - mVirtualKeyboard->keyboardArea().height();
+    this->setMaximumHeight(heightToSet);
+}
+
+void HelpCategoryView::onHandleKeypadClose()
+{	
+	updateVisibleItems(true);
+	qreal mainHeight  = mainWindow()->layoutRect().height();
+	qreal toolbarHeight = toolBar()->size().height();
+	qreal height = mainHeight - (toolBar()->isVisible() ? toolbarHeight : 0);
+	this->setMaximumHeight(height);
+}
+
+////////////////////////////////////////////////////////////////////////////////////////////
+// handle menu event
+void HelpCategoryView::onExpandAll()
+{
+	QStandardItemModel* model = (QStandardItemModel*)(mListAll->model());
+	expandCollapseAllList(model->invisibleRootItem(),true);
+}
+
+void HelpCategoryView::onCollapseAll()
+{
+	QStandardItemModel* model = (QStandardItemModel*)(mListAll->model());
+	expandCollapseAllList(model->invisibleRootItem(),false);
 }
 
 
--- a/userguide/src/HelpContentsView.cpp	Fri Apr 16 14:53:45 2010 +0300
+++ b/userguide/src/HelpContentsView.cpp	Mon May 03 12:24:47 2010 +0300
@@ -25,7 +25,6 @@
 #include <hbmenu.h>
 
 #include "BrowserWrapper.h"
-#include "HelpDocumentLoader.h"
 #include "HelpDataProvider.h"
 #include "HelpUtils.h"
 #include "HelpContentsView.h"
@@ -40,8 +39,9 @@
 
 void HelpContentsView::init()
 {
+	initDocMl();
     initBackAction();
-    mBrowser = HelpUIBuilder::findWidget<BrowserWrapper*>(DOCML_BROWSER_CONTENTS);
+    mBrowser = mBuilder.findWidget<BrowserWrapper*>(DOCML_BROWSER_CONTENTS);
     mBrowser->init();
 
     connect(mBrowser, SIGNAL(linkClicked(const QUrl&)), this, SLOT(onLinkClicked(const QUrl&)));
@@ -49,6 +49,21 @@
     connect(mainWindow(), SIGNAL(currentViewChanged(HbView*)), this, SLOT(onCurrentViewChanged(HbView*)));
 }
 
+void HelpContentsView::initDocMl()
+{
+ // Create widget hierarchy
+    setObjectName( DOCML_VIEW_CONTENTS );
+
+    // List existing root elements - this allows us to refer to objects in the XML 
+    // which are created outside the document.
+    QObjectList roots;
+    roots.append( this );
+
+	mBuilder.setObjectTree(roots);
+
+    mBuilder.load(QRC_DOCML_CONTENTS);
+}
+
 void HelpContentsView::initBackAction()
 {
     mSoftKeyAction = new HbAction(Hb::BackAction);
@@ -119,16 +134,13 @@
 
 void HelpContentsView::onBackAction()
 {
-	if(this == mainWindow()->currentView())
+	if(mBrowser->canGoBack())
 	{
-		if(mBrowser->canGoBack())
-		{
-			mBrowser->back();
-		}
-		else
-		{
-			emit activateView(HelpViewCategory);
-		}
+		mBrowser->back();
+	}
+	else
+	{
+		emit activateView(HelpViewCategory);
 	}
 }
 
--- a/userguide/src/HelpDataProvider.cpp	Fri Apr 16 14:53:45 2010 +0300
+++ b/userguide/src/HelpDataProvider.cpp	Mon May 03 12:24:47 2010 +0300
@@ -34,7 +34,8 @@
 {
 	mHelpModel = new QStandardItemModel();
 	mKeywordModel = new QStandardItemModel();
-	mSearhResultModel = NULL;
+	mSearhResultModel = new HelpProxyModel();
+	mSearhResultModel->setSourceModel(mKeywordModel);
 }
 
 HelpDataProvider::~HelpDataProvider()
@@ -80,14 +81,30 @@
 
 QAbstractItemModel* HelpDataProvider::getSearchData(const QString& key)
 {
-    delete mSearhResultModel;
-    mSearhResultModel = NULL;
-    
-    mSearhResultModel = new HelpProxyModel();;
-    mSearhResultModel->setSourceModel(mKeywordModel);
-    mSearhResultModel->setFilterRole(KeywordRole);
+/*    if(key.isEmpty())
+    {
+        return mKeywordModel;
+    }*/
+
+	if(key == mLastSrhKey)
+	{
+		return mSearhResultModel;
+	}
+/*
+	if(!mLastSrhKey.isEmpty() && HelpUtils::findStr(key, mLastSrhKey) != -1)
+	{
+		searchInResult(key);
+	}
+	else
+	{
+		mSearhResultModel->removeRows(0, mSearhResultModel->rowCount());
+		searchInAllData((HelpStandardItem*)mKeywordModel->invisibleRootItem(), key);
+	}*/
+
+	mLastSrhKey = key;
     mSearhResultModel->setFilterRegExp(key);
 
+	
     return mSearhResultModel;
 }
 
@@ -157,6 +174,7 @@
 			constructAppHelp(path);
 		}
 	}
+	mKeywordModel->sort(0, HelpUtils::sortOrder());
 }
 
 void HelpDataProvider::createBuiltInCategory(const QString& path)
@@ -199,7 +217,7 @@
 		if(item)
 		{
 			mHelpModel->appendRow(item);
-			constructKeywordModel(uid);
+//			constructKeywordModel(uid);
 		}
 	}
 	file.close();
@@ -249,6 +267,7 @@
 		HelpStandardItem* item = new HelpStandardItem(temp[1]);
 		item->setData(temp[0], HrefRole);
 		itemParent->appendRow(item);
+		constructKeywordModel(temp[1], uid, temp[0]);
 	}
 
 	file.close();
@@ -306,7 +325,7 @@
 				itemApp = new HelpStandardItem("Applications");
 			}
 			itemApp->appendRow(item);
-			constructKeywordModel(pathTemp);
+//			constructKeywordModel(pathTemp);
 		}
 		file.close();
 	}
@@ -318,56 +337,50 @@
 	}
 }
 
-void HelpDataProvider::constructKeywordModel(const QString& path)
+/*
+void HelpDataProvider::searchInAllData(HelpStandardItem* item, const QString& key)
 {
-	QString pathKeyword(path);
-	pathKeyword.append(BACKSLASH);
-	pathKeyword.append(KEYWORDXML);
-
-	QFile file(pathKeyword);
-	if (!file.open(QIODevice::ReadOnly)) {
-		return;
+	if(item->rowCount() > 0)
+	{
+		for(int i = 0; i < item->rowCount(); i++)
+		{		
+			searchInAllData((HelpStandardItem*)item->child(i),key);
+		}
 	}
-
-	//construct keyword model, title and keyword is one to more
-	QXmlStreamReader reader(&file);
-	QString keyword;
-	QString title;
-
-	while (!reader.atEnd()) {
-		if (!reader.readNextStartElement()) 
-		{	
-			continue;
-		}
-		if (reader.name() == "text")
+	else
+	{
+		if(HelpUtils::findStr(item->text(), key) != -1)
 		{
-			keyword = reader.readElementText();
+			HelpStandardItem* itemSearch = new HelpStandardItem(item->text());
+			itemSearch->setData(item->data(UidRole), UidRole);
+			itemSearch->setData(item->data(HrefRole), HrefRole);
+			mSearhResultModel->appendRow(itemSearch);
 		}
-		else if (reader.name() == "target")
+	}
+}
+
+void HelpDataProvider::searchInResult(const QString& key)
+{
+	for(int i = 0; i < mSearhResultModel->rowCount();)
+	{
+		QStandardItem* item = mSearhResultModel->item(i);
+		if(HelpUtils::findStr(item->text(), key) == -1)
 		{
-			QString href = reader.attributes().value("href").toString();
-			HelpStandardItem* item = findItemWithHref((HelpStandardItem *)(mKeywordModel->invisibleRootItem()), href);
-			QStringList keywordLst;
-			if(item)
-			{
-				keywordLst = item->data(KeywordRole).toStringList();
-				keywordLst.append(keyword);
-				item->setData(keywordLst,KeywordRole);
-			}
-			else
-			{
-				item = new HelpStandardItem(reader.readElementText());
-				item->setData(path, UidRole);
-				item->setData(href, HrefRole);
-
-				keywordLst.append(keyword);
-				item->setData(keywordLst,KeywordRole);
-				mKeywordModel->appendRow(item);
-			}				
-		}			
+			mSearhResultModel->removeRow(i);
+		}
+		else
+		{
+			i++;
+		}
 	}
-	file.close();
-	mKeywordModel->sort(0, HelpUtils::sortOrder());
+}
+*/
+void HelpDataProvider::constructKeywordModel(const QString& title, const QString& uid, const QString& href)
+{
+	HelpStandardItem* itemTemp = new HelpStandardItem(title);
+	itemTemp->setData(uid, UidRole);
+	itemTemp->setData(href, HrefRole);
+	mKeywordModel->appendRow(itemTemp);
 }
 
 HelpStandardItem* HelpDataProvider::findItemWithHref(HelpStandardItem* itemParent, const QString& href)
--- a/userguide/src/HelpDocumentLoader.cpp	Fri Apr 16 14:53:45 2010 +0300
+++ b/userguide/src/HelpDocumentLoader.cpp	Mon May 03 12:24:47 2010 +0300
@@ -24,28 +24,8 @@
 
 ////////////////////////////////////////////////////////////////////////////////////////////
 
-class HelpDocumentLoader : public HbDocumentLoader
-{
-private:
-    virtual QObject* createObject(const QString& type, const QString& name);
-};
-    
 QObject* HelpDocumentLoader::createObject(const QString& type, const QString& name)
 {
-    if(type == HelpCategoryView::staticMetaObject.className())
-    {
-        QObject* object = new HelpCategoryView;
-        object->setObjectName(name);
-        return object;
-    }
-
-    if(type == HelpContentsView::staticMetaObject.className())
-    {
-        QObject* object = new HelpContentsView;
-        object->setObjectName(name);
-        return object;
-    }
-    
     if(type == BrowserWrapper::staticMetaObject.className())    
     {
         QObject* object = new BrowserWrapper;
@@ -58,29 +38,15 @@
 
 
 ////////////////////////////////////////////////////////////////////////////////////////////
-
-HbDocumentLoader* gHelpUIBuilderInstance = NULL;
-
-HbDocumentLoader* HelpUIBuilder::instance()
+void HelpUIBuilder::setObjectTree(QObjectList roots)
 {
-    if(!gHelpUIBuilderInstance)
-    {
-        gHelpUIBuilderInstance = new HelpDocumentLoader();
-    }
-
-    return gHelpUIBuilderInstance;
-}
-
-void HelpUIBuilder::destroyInstance()
-{
-    delete gHelpUIBuilderInstance;
-    gHelpUIBuilderInstance = NULL;
+	mDocLoader.setObjectTree(roots);
 }
 
 QObjectList HelpUIBuilder::load(const QString& fileName)
 { 
     bool ok = false;
-    QObjectList list = instance()->load(fileName, &ok);
+    QObjectList list = mDocLoader.load(fileName, &ok);
     Q_ASSERT_X(ok, "Help", "HelpUIBuilder load file");
     return list;
 }
@@ -88,22 +54,20 @@
 QObjectList HelpUIBuilder::load(const QString& fileName, const QString& section)
 {
     bool ok = false;
-    QObjectList list = instance()->load(fileName, section, &ok);
+    QObjectList list = mDocLoader.load(fileName, section, &ok);
     Q_ASSERT_X(ok, "Help", "HelpUIBuilder load section");
     return list;
 }
 
 QGraphicsWidget* HelpUIBuilder::findWidget(const QString& name)
 {
-    return instance()->findWidget(name);
+    return mDocLoader.findWidget(name);
 }
 
 QObject* HelpUIBuilder::findObject(const QString& name)
 {
-    return instance()->findObject(name);
+    return mDocLoader.findObject(name);
 }
 
-
-
 // end of file
 
--- a/userguide/src/HelpMainWindow.cpp	Fri Apr 16 14:53:45 2010 +0300
+++ b/userguide/src/HelpMainWindow.cpp	Mon May 03 12:24:47 2010 +0300
@@ -15,6 +15,7 @@
 *
 */
 
+#include <hbtoolbar.h>
 #include <hbnotificationdialog.h>
 #include <hbaction.h>
 
@@ -22,22 +23,36 @@
 #include "HelpContentsView.h"
 
 #include "HelpMainWindow.h"
-#include "HelpDocumentLoader.h"
 #include "HelpDataProvider.h"
 
 HelpMainWindow::HelpMainWindow() : 
 mCategoryView(NULL),
 mContentsView(NULL)
 {
+	connect(this, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(onOrientationChanged(Qt::Orientation)));
+	initToolbar();
     activateCategoryView();
 }
 
 HelpMainWindow::~HelpMainWindow()
 {
-    HelpUIBuilder::destroyInstance();
     HelpDataProvider::destroyInstance();
 }
 
+void HelpMainWindow::initToolbar()
+{
+	mBuilder.load(QRC_DOCML_TOOLBAR);
+	mToolBar = mBuilder.findWidget<HbToolBar*>(DOCML_TOOLBAR);
+
+    HbAction* allAction = mBuilder.findObject<HbAction*>(DOCML_ACTION_ALL);
+    HbAction* findAction = mBuilder.findObject<HbAction*>(DOCML_ACTION_SEARCH);
+	HbAction* onLineSupportAction = mBuilder.findObject<HbAction*>(DOCML_ACTION_LINK_NOKIA);
+
+	connect(allAction, SIGNAL(triggered()), this, SLOT(onToolbarAll()));
+	connect(findAction, SIGNAL(triggered()), this, SLOT(onToolbarFind()));
+	connect(onLineSupportAction, SIGNAL(triggered()), this, SLOT(onToolbarOnlineSupport()));
+}
+
 void HelpMainWindow::onActivateView(HelpViewName viewName)
 {
 	switch(viewName)
@@ -59,10 +74,10 @@
 {
     if(!mCategoryView)
     {
-        HelpUIBuilder::load(QRC_DOCML_CATEGORY);
-        mCategoryView = HelpUIBuilder::findWidget<HelpCategoryView*>(DOCML_VIEW_CATEGORY);
+        mCategoryView = new HelpCategoryView();
         addView(mCategoryView);
         mCategoryView->init();
+		mCategoryView->setToolBar(mToolBar);
         emit currentViewChanged(mCategoryView);
 		connectViewSignal(mCategoryView);
     }
@@ -74,10 +89,10 @@
 {
     if(!mContentsView)
     {
-        HelpUIBuilder::load(QRC_DOCML_CONTENTS);
-        mContentsView = HelpUIBuilder::findWidget<HelpContentsView*>(DOCML_VIEW_CONTENTS);
+		mContentsView = new HelpContentsView();
         addView(mContentsView);
         mContentsView->init();
+		mContentsView->setToolBar(mToolBar);
 
         connectViewSignal(mContentsView);
     }
@@ -88,29 +103,25 @@
 void HelpMainWindow::connectViewSignal(const QObject *object)
 {
     connect(object, SIGNAL(activateView(HelpViewName)), this, SLOT(onActivateView(HelpViewName)));
-    
-    connect(object, SIGNAL(showAllList()), this, SLOT(onShowAllList()));
-    connect(object, SIGNAL(showFindList()), this, SLOT(onShowFindList()));
-    connect(object, SIGNAL(showOnlineSupport()), this, SLOT(onShowOnlineSupport()));
 }
 
 
 ////////////////////////////////////////////////////////////////////////////////////
 // handle view event
 
-void HelpMainWindow::onShowAllList()
+void HelpMainWindow::onToolbarAll()
 {
     activateCategoryView();
     mCategoryView->switchViewMode(HelpCategoryView::ViewModeAll);
 }
 
-void HelpMainWindow::onShowFindList()
+void HelpMainWindow::onToolbarFind()
 {
     activateCategoryView();
     mCategoryView->switchViewMode(HelpCategoryView::ViewModeSearch);
 }
 
-void HelpMainWindow::onShowOnlineSupport()
+void HelpMainWindow::onToolbarOnlineSupport()
 {
     HbNotificationDialog *notificationDialog = new HbNotificationDialog();
     notificationDialog->setParent(this);
@@ -118,5 +129,23 @@
     notificationDialog->show();
 }
 
+void HelpMainWindow::onOrientationChanged(Qt::Orientation orientation)
+{
+    RefreshToolbarText(orientation);
+}
+
+void HelpMainWindow::RefreshToolbarText(Qt::Orientation orientation)
+{
+	bool isLandscape = (Qt::Horizontal==orientation);
+    HbAction* tollbarAction = mBuilder.findObject<HbAction*>(DOCML_ACTION_ALL);
+    tollbarAction->setText(isLandscape ? qtTrId(TXT_BUTTON_ALL) : QString());
+
+    tollbarAction = mBuilder.findObject<HbAction*>(DOCML_ACTION_SEARCH);
+    tollbarAction->setText(isLandscape ? qtTrId(TXT_BUTTON_FIND) : QString());
+
+    tollbarAction = mBuilder.findObject<HbAction*>(DOCML_ACTION_LINK_NOKIA);
+    tollbarAction->setText(isLandscape ? qtTrId(TXT_BUTTON_LINK_SUPPORT) : QString());
+}
+
 // end of file
 
--- a/userguide/src/HelpProxyModel.cpp	Fri Apr 16 14:53:45 2010 +0300
+++ b/userguide/src/HelpProxyModel.cpp	Mon May 03 12:24:47 2010 +0300
@@ -18,8 +18,7 @@
 #include <QStringList>
 #include <QDebug>
 
-#include <hbstringutil.h>
-
+#include "HelpUtils.h"
 #include "HelpCommon.h"
 #include "HelpProxyModel.h"
 
@@ -44,13 +43,22 @@
 
 			foreach(QString str, keywordLst)
 			{
-				if(HbStringUtil::findC(str, filterRegExp().pattern()) != -1)
+				if(HelpUtils::findStr(str, filterRegExp().pattern()) != -1)
 				{
 					return true;
 				}
 			}
 			return false;
 		}
+	case Qt::DisplayRole:
+		{
+			QString title = sourceModel()->data(index, Qt::DisplayRole).toString();
+			if(HelpUtils::findStr(title, filterRegExp().pattern()) != -1)
+			{
+				return true;
+			}
+			return false;
+		}
 	default:
 		return QSortFilterProxyModel::filterAcceptsRow(sourceRow, sourceParent);
 	}
--- a/userguide/src/HelpStandardItem.cpp	Fri Apr 16 14:53:45 2010 +0300
+++ b/userguide/src/HelpStandardItem.cpp	Mon May 03 12:24:47 2010 +0300
@@ -15,8 +15,7 @@
 *
 */
 
-#include <hbstringutil.h>
-
+#include "HelpUtils.h"
 #include "HelpCommon.h"
 #include "HelpStandardItem.h"
 
@@ -34,7 +33,7 @@
 	switch(role)
 	{
 	case Qt::DisplayRole:
-		if(HbStringUtil::compareC(text(), other.text()) < 0)
+		if(HelpUtils::compareStr(text(), other.text()) < 0)
 		{
 			return true;
 		}
--- a/userguide/src/HelpUtils.cpp	Fri Apr 16 14:53:45 2010 +0300
+++ b/userguide/src/HelpUtils.cpp	Mon May 03 12:24:47 2010 +0300
@@ -19,6 +19,8 @@
 #include <QMap>
 #include <QLocale>
 
+#include <hbstringutil.h>
+
 #include "HelpUtils.h"
 
 
@@ -28,7 +30,7 @@
 
 #include <e32const.h>
 #include <xqappmgr.h>
-#include <EikEnv.h>
+#include <eikenv.h>
 #include <zipfile.h>
 
 void LoadFileFromZipL(const TDesC& aZipName, const TDesC& aFileName, QString& desBuffer)
@@ -88,7 +90,14 @@
 
     QT_TRAP_THROWING(LoadFileFromZipL(zipNameDes, subFileDes, htmlContent));
     }
-
+#else
+void HelpUtils::loadHtmlFromZipFile(const QString& path, const QString& htmlFile, QString& htmlContent)
+{
+	Q_UNUSED(path);
+	Q_UNUSED(htmlFile);
+	Q_UNUSED(htmlContent);
+	return;
+}
 #endif
 
 QString HelpUtils::rootPath()
@@ -234,6 +243,8 @@
     {
         return req5->lastError();
     }
+#else
+	Q_UNUSED(appUid);
 #endif
     return 0;
 }
@@ -248,4 +259,14 @@
 	return Qt::AscendingOrder;
 }
 
+int HelpUtils::findStr(const QString& strFrom, const QString& strToFind)
+{
+	return HbStringUtil::findC(strFrom, strToFind);
+}
+
+int HelpUtils::compareStr(const QString& str1, const QString& str2)
+{
+	return HbStringUtil::compareC(str1, str2);
+}
+
 // end of file
--- a/userguide/src/main.cpp	Fri Apr 16 14:53:45 2010 +0300
+++ b/userguide/src/main.cpp	Mon May 03 12:24:47 2010 +0300
@@ -17,7 +17,7 @@
 
 #include <QTranslator>
 #include <QtGlobal>
-#include <qlocale.h>
+#include <QLocale>
 
 #include <hbapplication.h>
 
@@ -39,8 +39,6 @@
     translatorSelf->load("userguide_"+lang, PATH_TRANSLATIONS);
     qApp->installTranslator(translatorSelf);
 
-	app.setApplicationName(hbTrId(TXT_TITLE));
-
 	HelpMainWindow mainWindow;
 	mainWindow.show();