filemanager/src/filemanager/src/components/fmcombinedquery.h
branchRCL_3
changeset 38 491b3ed49290
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/src/filemanager/src/components/fmcombinedquery.h	Tue Aug 31 15:06:05 2010 +0300
@@ -0,0 +1,119 @@
+/*
+ * 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:
+ *     The header file of combined query of of file manager
+ */
+#ifndef FMCOMBINEDQUERY_H
+#define FMCOMBINEDQUERY_H
+
+#include "fmcommon.h"
+#include "fmdialog.h"
+
+#include <QString>
+#include <QMap>
+#include <QStringList>
+#include <QGraphicsItem>
+
+class HbListWidget;
+class QGraphicsWidget;
+
+// CLASS DECLARATION
+/**
+ *  This class is used for popup query dialog
+ *  Support multi, single select
+ *
+ */
+class FmCombinedQuery : public FmDialog
+{
+    Q_OBJECT
+public:
+	enum SelectMode 
+    {
+        NoSelectMode        = 0,
+        SingleSelectMode    = 1,
+        MultiSelectMode     = 2,
+    };
+
+	FmCombinedQuery( QGraphicsItem *parent = 0 );
+	~FmCombinedQuery( void );
+
+    /**
+     * Set select mode
+     * @param mode select mode
+     * @see SelectMode
+     */
+	void setSelectMode( SelectMode mode );
+    
+    /**
+     * Set select mode
+     * @param mode select mode
+     * @return return select mode
+     * @see SelectMode
+     */
+    inline SelectMode selectMode() const
+    {
+		return mSelectMode;
+	}
+
+    /**
+     * Set one row as marked
+     * @param row the row number which need be marked
+     */
+    void setMarkedListItem( int row, bool mark = true );
+
+    /**
+     * Set dominant index for query list, if click dominant item, clear check status of other items.
+     * @param index dominant index
+     */
+    void setDominantIndex( int index );
+
+    /**
+     * Set list item data
+     * @param list item data as QMap, key is the userdata of list item as value will be displayed.
+     * @see selectedValues 
+     * @see selectedKeys
+     */
+    void setListItems(const QMap< int, QString > &list);
+   
+    /**
+     * Fetch the selected result of vaules from QMap those are set by setListItems function
+     * @return QStringList of selected values
+     * @see setListItems 
+     * @see selectedKeys
+     */
+    QStringList selectedValues() const;
+
+    /**
+     * Fetch the selected result of keys from QMap those are set by setListItems function
+     * @return QList with int of selected keys
+     * @see setListItems 
+     * @see selectedValues
+     */
+    QList<int> selectedKeys() const;
+
+signals:
+    void doCheckForPrimaryAction();
+
+public slots:
+	void activated(const QModelIndex &index); 
+    void checkForPrimaryAction();
+private:
+    SelectMode      mSelectMode;        /// select mode , MultiSelectMode is default value
+	QGraphicsWidget *mContentWidget;    /// Content widget of popup dialog
+    HbListWidget    *mListWidget;       /// list widget
+	int	            mDominantIndex;      /// index of dominant item. -1 for none
+};
+
+#endif //FMCOMBINEDQUERY_H