--- a/videocollection/videocollectionview/src/videocollectionviewutils.cpp Thu Apr 01 23:13:36 2010 +0300
+++ b/videocollection/videocollectionview/src/videocollectionviewutils.cpp Thu Apr 01 23:22:15 2010 +0300
@@ -15,12 +15,16 @@
*
*/
+#include <hblistview.h>
+#include <hbscrollbar.h>
+#include <hblistviewitem.h>
#include <hbdialog.h>
#include <hbmessagebox.h>
#include <centralrepository.h>
#include "videocollectioncommon.h"
#include "videocollectionviewutils.h"
+#include "videosortfilterproxymodel.h"
const int KVideoCollectionViewCenrepUid(0x2002BC63);
const int KVideoCollectionViewCenrepServiceIconKey(0x2);
@@ -43,7 +47,9 @@
// VideoCollectionViewUtils
// ---------------------------------------------------------------------------
//
-VideoCollectionViewUtils::VideoCollectionViewUtils()
+VideoCollectionViewUtils::VideoCollectionViewUtils():
+ mSortRole(-1),
+ mSortOrder(Qt::AscendingOrder)
{
}
@@ -75,6 +81,10 @@
}
delete cenRep;
}
+
+ mSortRole = role;
+ mSortOrder = order;
+
return status;
}
@@ -82,28 +92,36 @@
// loadSortingValues
// ---------------------------------------------------------------------------
//
-int VideoCollectionViewUtils::loadSortingValues(int& role, Qt::SortOrder& order)
+int VideoCollectionViewUtils::loadSortingValues(int &role, Qt::SortOrder &order)
{
- int status = -1;
- CRepository *cenRep = 0;
- TRAP_IGNORE(cenRep = CRepository::NewL(TUid::Uid(KVideoCollectionViewCenrepUid)));
- if(cenRep)
+ int err(0);
+
+ if (mSortRole == -1)
{
- TInt roleValue(KErrNotFound);
- TInt orderValue(KErrNotFound);
- status = cenRep->Get(KVideoCollectionViewCenrepSortingRoleKey, roleValue);
- if(status == KErrNone)
+ CRepository *cenRep = 0;
+ TRAP_IGNORE(cenRep = CRepository::NewL(TUid::Uid(KVideoCollectionViewCenrepUid)));
+ if(cenRep)
{
- status = cenRep->Get(KVideoCollectionViewCenrepSortingOrderKey, orderValue);
- if(status == KErrNone)
+ int sortRole(-1);
+ int sortOrder(-1);
+ err = cenRep->Get(KVideoCollectionViewCenrepSortingRoleKey, sortRole);
+ if(err == KErrNone)
{
- role = roleValue;
- order = static_cast<Qt::SortOrder>(orderValue);
+ mSortRole = sortRole;
+ err = cenRep->Get(KVideoCollectionViewCenrepSortingOrderKey, sortOrder);
+ if(err == KErrNone)
+ {
+ mSortOrder = static_cast<Qt::SortOrder>(sortOrder);
+ }
}
+ delete cenRep;
}
- delete cenRep;
}
- return status;
+
+ role = mSortRole;
+ order = mSortOrder;
+
+ return err;
}
// ---------------------------------------------------------------------------
@@ -161,33 +179,110 @@
}
// ---------------------------------------------------------------------------
+// initListView
+// ---------------------------------------------------------------------------
+//
+void VideoCollectionViewUtils::initListView(HbListView *view)
+{
+ if (view)
+ {
+ HbListViewItem *prototype = view->listItemPrototype();
+ if(prototype)
+ {
+ //Use image layout in prototype
+ prototype->setGraphicsSize(HbListViewItem::Thumbnail);
+ }
+ view->setItemRecycling(true);
+ view->setClampingStyle(HbScrollArea::BounceBackClamping);
+ view->setScrollingStyle(HbScrollArea::PanOrFlick);
+ view->setFrictionEnabled(true);
+ view->setUniformItemSizes(true);
+ view->setSelectionMode(HbAbstractItemView::NoSelection);
+
+ //Use scrollbar
+ HbScrollBar *scrollBar = view->verticalScrollBar();
+ if (scrollBar)
+ {
+ scrollBar->setInteractive(true);
+ }
+ }
+}
+
+// ---------------------------------------------------------------------------
+// sortModel
+// ---------------------------------------------------------------------------
+//
+void VideoCollectionViewUtils::sortModel(
+ VideoSortFilterProxyModel *model,
+ bool async)
+{
+ if (model)
+ {
+ // setup sorting order for model
+ int sortRole(VideoCollectionCommon::KeyDateTime);
+ Qt::SortOrder sortOrder(Qt::AscendingOrder);
+
+ // return value ignored, as in case of error the sortRole and sortOrder variables
+ // stay at their predefined values, and in error cases those are the sorting values
+ // that are used.
+ VideoCollectionViewUtils &self = VideoCollectionViewUtils::instance();
+ self.loadSortingValues(sortRole, sortOrder);
+ model->doSorting(sortRole, sortOrder, async);
+ }
+}
+
+// ---------------------------------------------------------------------------
// showStatusMsgSlot
// ---------------------------------------------------------------------------
//
void VideoCollectionViewUtils::showStatusMsgSlot(int statusCode, QVariant &additional)
{
QString msg("");
+ QString format("");
bool error(true);
- if(statusCode == VideoCollectionCommon::statusSingleDeleteFail)
- {
- QString format = tr("Unable to delete item %1. It is currently open.");
- if(additional.isValid())
- {
- msg = format.arg(additional.toString());
- }
- }
- else if(statusCode == VideoCollectionCommon::statusMultipleDeleteFail)
+ switch(statusCode)
{
- msg = tr("Unable to delete some items which are currently open.");
- }
- else if(statusCode == VideoCollectionCommon::statusMultipleDeleteSucceed)
- {
- QString format = tr("%1 videos deleted");
- if(additional.isValid())
- {
- msg = format.arg(additional.toString());
- }
- error = false;
+ case VideoCollectionCommon::statusSingleDeleteFail:
+ format = tr("Unable to delete item %1. It is currently open."); //TODO: localisation
+ if(additional.isValid())
+ {
+ msg = format.arg(additional.toString());
+ }
+ break;
+ case VideoCollectionCommon::statusMultipleDeleteFail:
+ msg = tr("Unable to delete some items which are currently open.");
+ break;
+ case VideoCollectionCommon::statusSingleRemoveFail:
+ format = tr("Unable to remove collection %1."); //TODO: localisation
+ if(additional.isValid())
+ {
+ msg = format.arg(additional.toString());
+ }
+ break;
+ case VideoCollectionCommon::statusMultiRemoveFail:
+ msg = tr("Unable to remove some collections.");
+ break;
+ case VideoCollectionCommon::statusVideosAddedToCollection:
+ format = tr("Videos added to %1 collection."); //TODO: localisation
+ if(additional.isValid())
+ {
+ msg = format.arg(additional.toString());
+ }
+ error = false;
+ break;
+ case VideoCollectionCommon::statusAllVideosAlreadyInCollection:
+ msg = tr("All videos already added to this collection.");
+ break;
+ case VideoCollectionCommon::statusDeleteInProgress:
+ format = tr("%1 videos are being deleted."); //TODO: localisation
+ if(additional.isValid())
+ {
+ msg = format.arg(additional.toString());
+ }
+ error = false;
+ break;
+ default: // no msg to show
+ return;
}
if(msg.count() > 0)
@@ -204,5 +299,3 @@
}
}
-
-