1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-07-30 19:00:12 +02:00

Add private listening status showing

This commit is contained in:
Jeff Mitchell
2011-11-07 20:47:04 -05:00
parent 35bbfac2c5
commit f70da74f46
4 changed files with 27 additions and 7 deletions

View File

@@ -72,6 +72,7 @@
<file>data/images/music-icon.png</file>
<file>data/images/configure.png</file>
<file>data/images/create-playlist.png</file>
<file>data/images/private-listening.png</file>
<file>data/images/add.png</file>
<file>data/images/recently-played.png</file>
<file>data/images/supercollection.png</file>

View File

@@ -17,7 +17,8 @@
*/
#include "actioncollection.h"
#include "tomahawksettings.h"
#include <tomahawksettings.h>
#include <utils/tomahawkutils.h>
ActionCollection* ActionCollection::s_instance = 0;
ActionCollection* ActionCollection::instance()
@@ -39,8 +40,12 @@ ActionCollection::initActions()
{
m_actionCollection[ "latchOn" ] = new QAction( tr( "&Listen Along" ), this );
m_actionCollection[ "latchOff" ] = new QAction( tr( "&Stop Listening Along" ), this );
m_actionCollection[ "togglePrivacy" ] = new QAction( tr( QString( TomahawkSettings::instance()->privateListeningMode() == TomahawkSettings::PublicListening ?
"&Listen Privately" : "&Listen Publicly" ).toAscii().constData() ), this );
bool isPublic = TomahawkSettings::instance()->privateListeningMode() == TomahawkSettings::PublicListening;
QAction *privacyToggle = new QAction( tr( QString( isPublic ? "&Listen Privately" : "&Listen Publicly" ).toAscii().constData() ), this );
privacyToggle->setIcon( QIcon( RESPATH "images/private-listening.png" ) );
privacyToggle->setIconVisibleInMenu( isPublic );
m_actionCollection[ "togglePrivacy" ] = privacyToggle;
}

View File

@@ -411,10 +411,10 @@ AudioEngine::togglePrivateListeningMode()
TomahawkSettings::instance()->setPrivateListeningMode( TomahawkSettings::PublicListening );
#ifndef TOMAHAWK_HEADLESS
ActionCollection::instance()->getAction( "togglePrivacy" )->setText(
tr( QString( TomahawkSettings::instance()->privateListeningMode() == TomahawkSettings::PublicListening ?
"&Listen Privately" : "&Listen Publicly" ).toAscii().constData() )
);
QAction *privacyToggle = ActionCollection::instance()->getAction( "togglePrivacy" );
bool isPublic = TomahawkSettings::instance()->privateListeningMode() == TomahawkSettings::PublicListening;
privacyToggle->setText( tr( QString( isPublic ? "&Listen Privately" : "&Listen Publicly" ).toAscii().constData() ) );
privacyToggle->setIconVisibleInMenu( isPublic );
#endif
}

View File

@@ -29,11 +29,13 @@
#include "utils/tomahawkutils.h"
#include "animationhelper.h"
#include "source.h"
#include "tomahawksettings.h"
#include <QApplication>
#include <QPainter>
#include <QMouseEvent>
#include <audio/audioengine.h>
#include <actioncollection.h>
#define TREEVIEW_INDENT_ADD -7
@@ -66,6 +68,9 @@ SourceDelegate::SourceDelegate( QAbstractItemView* parent )
m_headphonesOn.load( RESPATH "images/headphones-sidebar.png" );
m_nowPlayingSpeaker.load( RESPATH "images/now-playing-speaker.png" );
m_nowPlayingSpeakerDark.load( RESPATH "images/now-playing-speaker-dark.png" );
QAction *privacyToggle = ActionCollection::instance()->getAction( "togglePrivacy" );
connect( privacyToggle, SIGNAL( triggered( bool ) ), qobject_cast< QWidget* >( this ), SLOT( repaint() ) );
}
@@ -205,6 +210,15 @@ SourceDelegate::paint( QPainter* painter, const QStyleOptionViewItem& option, co
textRect = option.rect.adjusted( iconRect.width() + 8, painter->fontMetrics().height() + 6, -figWidth - 24, -4 );
painter->setFont( normal );
bool privacyOn = TomahawkSettings::instance()->privateListeningMode() == TomahawkSettings::FullyPrivate;
if ( !colItem->source().isNull() && colItem->source()->isLocal() && privacyOn )
{
QRect pmRect = textRect;
pmRect.setTop( pmRect.bottom() - painter->fontMetrics().height() + 3 );
pmRect.setRight( pmRect.left() + pmRect.height() );
ActionCollection::instance()->getAction( "togglePrivacy" )->icon().paint( painter, pmRect );
textRect.adjust( pmRect.width() + 3, 0, 0, 0 );
}
if ( isPlaying || ( !colItem->source().isNull() && colItem->source()->isLocal() ) )
{
// Show a listen icon