diff -r 4697dfb2d7ad -r 238255e8b033 messagingapp/msgui/msgapp/inc/msglistview.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/messagingapp/msgui/msgapp/inc/msglistview.h Fri Apr 16 14:56:15 2010 +0300 @@ -0,0 +1,193 @@ +/* + * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). + * All rights reserved. + * This component and the accompanying materials are made available + * under the terms of "Eclipse Public License v1.0" + * which accompanies this distribution, and is available + * at the URL "http://www.eclipse.org/legal/epl-v10.html". + * + * Initial Contributors: + * Nokia Corporation - initial contribution. + * + * Contributors: + * + * Description: + * + */ + +#ifndef MSG_LIST_VIEW_H +#define MSG_LIST_VIEW_H + +// INCLUDES +#include "msgbaseview.h" + +// FORWARD DECLARATIONS +class HbListView; +class HbAbstractViewItem; +class HbListWidget; +class HbListWidgetItem; +class QSortFilterProxyModel; + +/** + * This class provides the message list view for the messaging application. + * Data source for this view is the conversation list model. + */ +class MsgListView: public MsgBaseView +{ +Q_OBJECT + +public: + /** + * Constructor + */ + explicit MsgListView(QGraphicsItem *parent = 0); + + /** + * Destructor + */ + virtual ~MsgListView(); + + /** + * This function starts effect on ListView + */ + void activateView(); + +private slots: + /* + * Handler for long tap of a list item. + * @param viewItem Lon tapped view item + * @param point X and Y co-ordinates of long tap + */ + void longPressed(HbAbstractViewItem* viewItem, const QPointF& point); + + /* + * Handler for short tap of a list item and Item specific menu + * Opens the conversation view. + * @param index Model index of the list item tapped. + */ + void openConversation(const QModelIndex& index); + + //----------------- View specific Menu Slots---------------------------// + + /** + * Sorts conversation data model based on subject + */ + void sortBySubject(); + + /** + * Sorts conversation data model based on timestamp + */ + void sortByDate(); + + /** + * Sorts conversation data model based on sender + */ + void sortBySender(); + + /** + * Handler for new message button trigger + */ + void sendNewMessage(); + + /** + * Handler for closing all the active chats + */ + void closeActiveChats(); + + /** + * Deletes all the conversations + */ + void deleteAll(); + + /** + * Lists all the Im Messages separately + */ + void viewImMessagesSeparately(); + + /** + *Popup the message settings dialog + */ + void settings(); + + // -------------------------Item Specific Menu----------------------- // + + /** + * Opens the conversation view. + */ + void openConversation(); + + /** + * Opens the contact information + */ + void showContact(); + + /** + * Deletes the seleted item from the list of Conversations + */ + void deleteItem(); + + // ------------------------------- End ----------------------------- // + + /** + * Connect Model to view + */ + void populateListView(); + + /** + * Handles toolbar extension item clicks. + * @param item Activated toolbar extension item. + */ + void handleViewExtnActivated(HbListWidgetItem *item); + +private: + + /** + * createView + */ + void createView(); + + /** + * Initialize the list view inside the main view + */ + void setupListView(); + + /** + * Initialize the view specific menu + */ + void setupMenu(); + + /** + * Initialize the tool bar of the view + */ + void setupToolBar(); + +private: + /** + * List view + * Own. + */ + HbListView* mMsgList; + + /** + * Proxy model for sorting and filtering. + * Own. + */ + QSortFilterProxyModel *mProxyModel; + + /** + * Container widget of toolbar extension. + * ToolBar takes ownership. + */ + HbListWidget *mViewExtnList; + + /** + * Views in toolbar extension. + */ + enum viewExtnIds + { + DRAFTS_EXTN = 0x00, CONVERSATIONS_EXTN = 0x01 + }; + +}; + +#endif // MSG_LIST_VIEW_H