diff -r af3740e3753f -r c5b304f4d89b app/src/mpmainwindow.cpp --- a/app/src/mpmainwindow.cpp Wed Aug 18 09:46:20 2010 +0300 +++ b/app/src/mpmainwindow.cpp Thu Sep 02 20:24:03 2010 +0300 @@ -58,6 +58,7 @@ mMediaWallViewPlugin(0), mCurrentViewPlugin(0), mVerticalViewType( CollectionView ), + mPreviousVerticalViewType( NoView ), mMusicServices(0), mPopupHandler(0), mUserExit( false ), @@ -221,19 +222,22 @@ lower(); break; case MpCommon::ActivateCollectionView: - activateView(CollectionView); + activateView( CollectionView ); break; case MpCommon::ActivatePlaybackView: - activateView(PlaybackView); + activateView( PlaybackView ); break; case MpCommon::ActivateSettingsView: - activateView(SettingsView); + activateView( SettingsView ); break; case MpCommon::ActivateDetailsView: - activateView(DetailsView); + activateView( DetailsView ); break; case MpCommon::ActivatePreviousView: - activateView(mVerticalViewType); + if ( orientation() == Qt::Vertical + && mPreviousVerticalViewType != NoView ) { + activateView( mPreviousVerticalViewType ); + } break; } TX_EXIT @@ -248,7 +252,7 @@ activateView( mVerticalViewType ); } else { - activateView(MediaWallView); + activateView( MediaWallView ); } } @@ -281,7 +285,13 @@ Q_ASSERT( mCurrentViewPlugin ); if ( mCurrentViewPlugin ) { - if ( viewType != MediaWallView && viewType != DetailsView ) { + if ( viewType != MediaWallView ) { + //storing previous vertical view type only if it is not the same + //view, this to be able to keep track of the previously activated + //view excluding media wall switching. + if ( mVerticalViewType != viewType ) { + mPreviousVerticalViewType = mVerticalViewType; + } mVerticalViewType = viewType; } addView( reinterpret_cast( mCurrentViewPlugin->getView() ) ); @@ -336,8 +346,7 @@ } else if ( mCollectionViewPlugin && mCurrentViewPlugin != mCollectionViewPlugin ) { activateView( CollectionView ); - MpViewBase* collectionView = reinterpret_cast(mCollectionViewPlugin->getView()); - collectionView->setDefaultView(); + } TX_EXIT