diff -r afea38384506 -r a2b50a479edf radioapp/radiowidgets/src/radiohistoryview.cpp --- a/radioapp/radiowidgets/src/radiohistoryview.cpp Fri May 14 15:52:32 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,315 +0,0 @@ -/* -* 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: -* -*/ - -// System includes -#include -#include -#include -#include -#include - -// User includes -#include "radiohistoryview.h" -#include "radiowindow.h" -#include "radiologger.h" -#include "radiouiloader.h" -#include "radiouiengine.h" -#include "radiohistorymodel.h" -#include "radiohistoryitem.h" - -// BEGIN TEMPORARY TEST CODE CODE -#include -#include "radiostationmodel.h" - -struct Song -{ - const char* mArtist; - const char* mTitle; -}; -const Song KRecognizedSongs[] = { - { "Red Hot Chili Peppers", "Under The Bridge" }, - { "Queens Of The Stone Age", "No One Knows" }, - { "The Presidents of the United States of America", "Dune Buggy" }, - { "System of a Down", "Aerials" }, - { "The White Stripes", "Seven Nation Army" }, - { "Alice In Chains", "When The Sun Rose Again" }, - { "Bullet For My Valentine", "Tears Don't Fall" } -}; -const int KSongsCount = sizeof( KRecognizedSongs ) / sizeof( KRecognizedSongs[0] ); -// END TEMPORARY TEST CODE CODE - -/*! - * - */ -RadioHistoryView::RadioHistoryView() : - RadioViewBase( false ), - mHistoryList( 0 ), - mAllSongsButton( 0 ), - mTaggedSongsButton( 0 ), - mSelectedItem( new RadioHistoryItem() ), - mCurrentRow( -1 ), - mSongIndex( 0 ) -{ -} - -/*! - * - */ -RadioHistoryView::~RadioHistoryView() -{ -} - -/*! - * - */ -void RadioHistoryView::setNonTaggedIcon( const HbIcon& nonTaggedIcon ) -{ - mNonTaggedIcon = nonTaggedIcon; - mNonTaggedIcon.setColor( Qt::white ); -} - -/*! - * - */ -HbIcon RadioHistoryView::nonTaggedIcon() const -{ - return mNonTaggedIcon; -} - -/*! - * - */ -void RadioHistoryView::setTaggedIcon( const HbIcon& taggedIcon ) -{ - mTaggedIcon = taggedIcon; -} - -/*! - * - */ -HbIcon RadioHistoryView::taggedIcon() const -{ - return mTaggedIcon; -} - -/*! - * Private slot - * - */ -void RadioHistoryView::deckButtonPressed() -{ - if ( sender() == mTaggedSongsButton ) { - loadSection( DOCML::FILE_HISTORYVIEW, DOCML::HV_SECTION_FAVORITE_MODE ); - } else { - loadSection( DOCML::FILE_HISTORYVIEW, DOCML::HV_SECTION_HISTORY_MODE ); - } - - const bool showTagged = mTaggedSongsButton->isChecked(); - historyModel().setShowTagged( showTagged ); - - updateVisibilities(); -} - -/*! - * Private slot - * - */ -void RadioHistoryView::clearList() -{ - const bool showingTagged = mTaggedSongsButton->isChecked(); - askQuestion( hbTrId( showingTagged ? "txt_rad_info_clear_tagged_songs_list" : - "txt_rad_info_clear_recently_played_songs_list" ) ); -} - -/*! - * Private slot - * - */ -void RadioHistoryView::updateVisibilities() -{ - const int itemCount = mMainWindow->uiEngine().historyModel().rowCount(); - loadSection( DOCML::FILE_HISTORYVIEW, itemCount ? DOCML::HV_SECTION_SHOW_LIST : DOCML::HV_SECTION_HIDE_LIST ); -} - -/*! - * Private slot - * - */ -void RadioHistoryView::showContextMenu( const QModelIndex& index ) -{ - *mSelectedItem = historyModel().itemAtIndex( index ); - mCurrentRow = index.row(); - - HbMenu* menu = mUiLoader->findObject( DOCML::HV_NAME_CONTEXT_MENU ); - - if ( HbAction* tagAction = mUiLoader->findObject( DOCML::HV_NAME_CONTEXT_TAG ) ) { - if ( mSelectedItem->isTagged() ) { - tagAction->setText( hbTrId( "txt_rad_menu_remove_tag" ) ); - } else { - tagAction->setText( hbTrId( "txt_rad_menu_tag_song" ) ); - } - } - - if ( HbAction* searchAction = mUiLoader->findObject( DOCML::HV_NAME_CONTEXT_SEARCH ) ) { - //TODO: Check if "search from other store" should be available - searchAction->setVisible( false ); - } - - HbAbstractViewItem* item = mHistoryList->itemByIndex( index ); - QPointF coords = item->pos(); - coords.setY( mHistoryList->contentWidget()->pos().y() + coords.y() ); - menu->setPreferredPos( QPointF( size().width() / 2 - menu->size().width() / 2, coords.y() + menu->size().height() / 2 ) ); - - menu->show(); -} - -/*! - * Private slot - * - */ -void RadioHistoryView::toggleTagging() -{ - historyModel().toggleTagging( *mSelectedItem, mCurrentRow ); - mSelectedItem->reset(); - mCurrentRow = -1; -} - -/*! - * Private slot - * - */ -void RadioHistoryView::openOviStore() -{ - QString msg = "To be implemented: Open ovi store. Artist: %1, Title: %2"; - HbMessageBox::information( msg.arg( mSelectedItem->artist() ).arg( mSelectedItem->title() ) ); - mMainWindow->uiEngine().openMusicStore( *mSelectedItem ); -} - -/*! - * Private slot - * - */ -void RadioHistoryView::openOtherStore() -{ - QString msg = "To be implemented: Open other store. Artist: %1, Title: %2"; - HbMessageBox::information( msg.arg( mSelectedItem->artist() ).arg( mSelectedItem->title() ) ); - mMainWindow->uiEngine().openMusicStore( *mSelectedItem, RadioUiEngine::OtherStore ); -} - -/*! - * Private slot - * TEMPORARY TEST CODE - */ -void RadioHistoryView::addSongs() -{ - for ( int i = 0; i < KSongsCount; ++i ) { - QTimer::singleShot( 1000 + i * 1500, this, SLOT(addOneSong()) ); - } -} - -/*! - * Private slot - * TEMPORARY TEST CODE - */ -void RadioHistoryView::addOneSong() -{ - Song song = KRecognizedSongs[mSongIndex++]; - mSongIndex %= KSongsCount; - - RadioStation station = mMainWindow->uiEngine().stationModel().currentStation(); - mMainWindow->uiEngine().historyModel().addItem( song.mArtist, song.mTitle, station ); -} - -/*! - * \reimp - * - */ -void RadioHistoryView::init() -{ - LOG_METHOD; - mInitialized = true; - - RadioHistoryModel* historyModel = &mMainWindow->uiEngine().historyModel(); - historyModel->setShowDetails( mOrientation == Qt::Horizontal ); - - if ( !mNonTaggedIcon.isNull() && !mTaggedIcon.isNull() ) { - historyModel->setIcons( mNonTaggedIcon.qicon(), mTaggedIcon.qicon() ); - } - - mHistoryList = mUiLoader->findObject( DOCML::HV_NAME_HISTORY_LIST ); - mHistoryList->setScrollingStyle( HbListView::PanOrFlick ); - mHistoryList->setModel( historyModel ); - mHistoryList->setSelectionMode( HbListView::NoSelection ); - mHistoryList->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Expanding ); - - mAllSongsButton = mUiLoader->findObject( DOCML::HV_NAME_ALL_SONGS_BUTTON ); - mTaggedSongsButton = mUiLoader->findObject( DOCML::HV_NAME_TAGGED_SONGS_BUTTON ); - - if ( HbAction* clearListAction = mUiLoader->findObject( DOCML::HV_NAME_CLEAR_LIST_ACTION ) ) { - connectAndTest( clearListAction, SIGNAL(triggered()), - this, SLOT(clearList()) ); - } - - connectAndTest( mTaggedSongsButton, SIGNAL(triggered() ), - this, SLOT(deckButtonPressed() ) ); - connectAndTest( mAllSongsButton, SIGNAL(triggered() ), - this, SLOT(deckButtonPressed() ) ); - connectAndTest( historyModel, SIGNAL(itemAdded() ), - this, SLOT(updateVisibilities() ) ); - - loadSection( DOCML::FILE_HISTORYVIEW, DOCML::HV_SECTION_HISTORY_MODE ); - updateVisibilities(); - - connectCommonMenuItem( MenuItem::UseLoudspeaker ); - - initBackAction(); - - // BEGIN TEMPORARY TEST CODE - if ( HbAction* addSongsAction = mUiLoader->findObject( "hv:add_songs_action" ) ) { - connectAndTest( addSongsAction, SIGNAL(triggered()), - this, SLOT(addSongs()) ); - } - // END TEMPORARY TEST CODE -} - -/*! - * \reimp - * - */ -void RadioHistoryView::setOrientation() -{ - RadioHistoryModel& model = mMainWindow->uiEngine().historyModel(); - model.setShowDetails( mOrientation == Qt::Horizontal ); -} - -/*! - * \reimp - * - */ -void RadioHistoryView::userAccepted() -{ - mMainWindow->uiEngine().historyModel().removeAll(); - updateVisibilities(); -} - -/*! - * - */ -RadioHistoryModel& RadioHistoryView::historyModel() const -{ - return *static_cast( mHistoryList->model() ); -}