diff -r a10844a9914d -r a60f8b6b1d32 hgcacheproxymodel/tsrc/fute/HgCacheProxyModelTestApp/src/mywindow.cpp --- a/hgcacheproxymodel/tsrc/fute/HgCacheProxyModelTestApp/src/mywindow.cpp Fri Sep 17 15:55:58 2010 +0300 +++ b/hgcacheproxymodel/tsrc/fute/HgCacheProxyModelTestApp/src/mywindow.cpp Wed Oct 06 14:53:41 2010 +0300 @@ -16,11 +16,6 @@ * Version : %version: 8 % */ #include "mywindow.h" -#include -#include -#include -#include -#include #include #include #include @@ -28,10 +23,16 @@ #include #include #include +#include #include #include #include -#include +#include +#include +#include +#include +#include +#include #include #include #include @@ -47,6 +48,8 @@ const int KScrollTo546 = 6; const int KScrollTo875 = 7; const int KScrollToEnd = 8; +const int KToogleStyle = 9; +const int KToogleFriction = 10; const int KSort1Command = 1101; const int KSort2Command = 1102; @@ -86,6 +89,7 @@ const int KResetCommand = 10000; + MyWindow::MyWindow() : HbMainWindow(), mCurrentWidget(0), @@ -100,7 +104,9 @@ mFilterTestTimer(new QTimer(this)), mFilterTestVal(-1), mResetTestTimer(new QTimer(this)), - mResetTestVal(-1) + mResetTestVal(-1), + mUseStyles(false), + mEnableFriction(true) { mMainView = new HbView(); addView( mMainView ); @@ -116,7 +122,7 @@ connect(mResetTestTimer, SIGNAL(timeout()), this, SLOT(resetTestTimeout())); HbAction action; - action.setData ( QVariant(KListViewCommand) ); //select Grid + action.setData ( QVariant(KListViewCommand) ); //select List processAction(&action); } @@ -171,6 +177,11 @@ action = viewSubMenu->addAction("Scroll to bottom"); action->setData(QVariant(KScrollToEnd)); + action = viewSubMenu->addAction("Enable styles usage"); + action->setData(QVariant(KToogleStyle)); + action = viewSubMenu->addAction("Disable friction"); + action->setData(QVariant(KToogleFriction)); + } void MyWindow::addCacheProxyModelMenu(HbMenu* parent) @@ -277,11 +288,16 @@ switch (command){ case KGridViewCommand : { mMainView->setWidget( NULL ); //this will delete old Widget + mGridWidget = NULL; + mListWidget = NULL; + mMediaWallWidget = NULL; + mHgGridWidget = NULL; mGridWidget = new HbGridView(); + if (mUseStyles) mGridWidget->setLayoutName( "hgcacheproxymodeltestapp_grid" ); if ( orientation() == Qt::Horizontal ) { mGridWidget->setColumnCount( 5 ); mGridWidget->setRowCount( 3 ); - }else { + } else { mGridWidget->setColumnCount( 3 ); mGridWidget->setRowCount( 5 ); } @@ -289,6 +305,7 @@ mGridWidget->setItemRecycling( true ); mGridWidget->verticalScrollBar()->setInteractive(true); mGridWidget->verticalScrollBar()->setVisible(true); + mGridWidget->setFrictionEnabled(mEnableFriction); mMainView->setWidget( mGridWidget ); mGridWidget->setModel(mModel); mCurrentWidget = mGridWidget; @@ -296,11 +313,17 @@ } case KListViewCommand : { mMainView->setWidget( NULL ); //this will delete old Widget + mGridWidget = NULL; + mListWidget = NULL; + mMediaWallWidget = NULL; + mHgGridWidget = NULL; mListWidget = new HbListView(); + if (mUseStyles) mListWidget->setLayoutName( "hgcacheproxymodeltestapp_list" ); mListWidget->setUniformItemSizes( true ); mListWidget->setItemRecycling( true ); mListWidget->verticalScrollBar()->setInteractive(true); mListWidget->verticalScrollBar()->setVisible(true); + mListWidget->setFrictionEnabled(mEnableFriction); mMainView->setWidget( mListWidget ); mListWidget->setModel(mModel); mCurrentWidget = mListWidget; @@ -308,6 +331,10 @@ } case KMediaWallViewCommand : { mMainView->setWidget( NULL ); //this will delete old Widget + mGridWidget = NULL; + mListWidget = NULL; + mMediaWallWidget = NULL; + mHgGridWidget = NULL; mMediaWallWidget = new HgMediawall(); mMediaWallWidget->scrollBar()->setInteractive(true); mMediaWallWidget->scrollBar()->setVisible(true); @@ -318,6 +345,10 @@ } case KHgGridViewCommand : { mMainView->setWidget( NULL ); //this will delete old Widget + mGridWidget = NULL; + mListWidget = NULL; + mMediaWallWidget = NULL; + mHgGridWidget = NULL; mHgGridWidget = new HgGrid(orientation()); connect(this, SIGNAL(orientationChanged(Qt::Orientation)), mHgGridWidget, SLOT(orientationChanged(Qt::Orientation))); mHgGridWidget->scrollBar()->setInteractive(true); @@ -343,6 +374,66 @@ scrollTo(mMyDataProvider->rowCount()-1); break; } + case KToogleStyle : { + bool oldVal = mUseStyles; + if ( !mUseStyles ) { + bool widgetmlLoaded = HbStyleLoader::registerFilePath("f:/hgcacheproxymodeltestapp.widgetml"); + if (!widgetmlLoaded) { + widgetmlLoaded = HbStyleLoader::registerFilePath(":/layout/hgcacheproxymodeltestapp.widgetml"); + } + bool cssLoaded = HbStyleLoader::registerFilePath("f:/hgcacheproxymodeltestapp.css"); + if (!cssLoaded) { + cssLoaded = HbStyleLoader::registerFilePath(":/layout/hgcacheproxymodeltestapp.css"); + } + if (widgetmlLoaded && cssLoaded) { + mUseStyles = true; + } else { //unload all, no layout files + HbStyleLoader::unregisterFilePath("f:/hgcacheproxymodeltestapp.widgetml"); + HbStyleLoader::unregisterFilePath("f:/hgcacheproxymodeltestapp.css"); + HbStyleLoader::unregisterFilePath(":/layout/hgcacheproxymodeltestapp.widgetml"); + HbStyleLoader::unregisterFilePath(":/layout/hgcacheproxymodeltestapp.css"); + mUseStyles = false; + } + } else { + HbStyleLoader::unregisterFilePath("f:/hgcacheproxymodeltestapp.widgetml"); + HbStyleLoader::unregisterFilePath("f:/hgcacheproxymodeltestapp.css"); + HbStyleLoader::unregisterFilePath(":/layout/hgcacheproxymodeltestapp.widgetml"); + HbStyleLoader::unregisterFilePath(":/layout/hgcacheproxymodeltestapp.css"); + mUseStyles = false; + } + + if (oldVal != mUseStyles){ + if (mUseStyles) { + action->setText("Disable styles usage"); + } else { + action->setText("Enable styles usage"); + } + + HbAction newAction; + if (mGridWidget) { + newAction.setData ( QVariant(KGridViewCommand) ); //select hbgrid + } else if (mListWidget) { + newAction.setData ( QVariant(KListViewCommand) ); //select hblist + } else { + newAction.setData ( QVariant()); + } + if (newAction.data().isValid()) processAction(&newAction); //don't change view for mediawall and hggrid + } + break; + } + case KToogleFriction : { + mEnableFriction = !mEnableFriction; + if (mGridWidget) mGridWidget->setFrictionEnabled(mEnableFriction); + if (mListWidget) mListWidget->setFrictionEnabled(mEnableFriction); + + if (mEnableFriction) { + action->setText("Disable friction"); + } else { + action->setText("Enable friction"); + } + + break; + } case KSort1Command : { mModel->setSortRole(Qt::UserRole+2); mModel->sort(0);