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

* New layout for Dashboard.

This commit is contained in:
Christian Muehlhaeuser
2013-06-15 07:23:54 +02:00
committed by Michael Zanetti
parent 06dca3111f
commit 36ae09b698
2 changed files with 344 additions and 225 deletions

View File

@@ -61,83 +61,127 @@ Dashboard::Dashboard( QWidget* parent )
m_header->setCaption( tr( "Dashboard" ) ); m_header->setCaption( tr( "Dashboard" ) );
m_header->setDescription( tr( "An overview of your recent activity" ) ); m_header->setDescription( tr( "An overview of your recent activity" ) );
RecentPlaylistsModel* model = new RecentPlaylistsModel( HISTORY_PLAYLIST_ITEMS, this ); ui->lineAbove->setStyleSheet( QString( "QFrame { border: 1px solid black; }" ) );
ui->lineBelow->setStyleSheet( QString( "QFrame { border: 1px solid %1; }" ).arg( TomahawkStyle::HEADER_BACKGROUND.name() ) );
QPalette trackViewPal = ui->tracksView->palette(); {
trackViewPal.setColor( QPalette::Foreground, TomahawkStyle::PAGE_FOREGROUND ); m_tracksModel = new RecentlyPlayedModel( ui->tracksView, HISTORY_TRACK_ITEMS );
trackViewPal.setColor( QPalette::Text, TomahawkStyle::PAGE_FOREGROUND ); ui->tracksView->proxyModel()->setStyle( PlayableProxyModel::ShortWithAvatars );
trackViewPal.setColor( QPalette::Highlight, QColor( "#252020" ) ); ui->tracksView->overlay()->setEnabled( false );
trackViewPal.setColor( QPalette::HighlightedText, Qt::white ); ui->tracksView->setPlaylistModel( m_tracksModel );
ui->tracksView->setAutoResize( true );
ui->tracksView->setAlternatingRowColors( false );
m_tracksModel->setSource( source_ptr() );
ui->playlistWidget->setFrameShape( QFrame::NoFrame ); QPalette p = ui->tracksView->palette();
ui->playlistWidget->setAttribute( Qt::WA_MacShowFocusRect, 0 ); p.setColor( QPalette::Text, TomahawkStyle::PAGE_TRACKLIST_TRACK_SOLVED );
ui->playlistWidget->setItemDelegate( new PlaylistDelegate() ); p.setColor( QPalette::BrightText, TomahawkStyle::PAGE_TRACKLIST_TRACK_UNRESOLVED );
ui->playlistWidget->setModel( model ); p.setColor( QPalette::Foreground, TomahawkStyle::PAGE_TRACKLIST_NUMBER );
ui->playlistWidget->overlay()->resize( 380, 86 ); p.setColor( QPalette::Highlight, TomahawkStyle::PAGE_TRACKLIST_HIGHLIGHT );
ui->playlistWidget->setVerticalScrollMode( QAbstractItemView::ScrollPerPixel ); p.setColor( QPalette::HighlightedText, TomahawkStyle::PAGE_TRACKLIST_HIGHLIGHT_TEXT );
ui->playlistWidget->setPalette( trackViewPal );
ui->playlistWidget->setMinimumHeight( 400 );
updatePlaylists();
m_tracksModel = new RecentlyPlayedModel( ui->tracksView, HISTORY_TRACK_ITEMS ); ui->tracksView->setPalette( p );
ui->tracksView->proxyModel()->setStyle( PlayableProxyModel::ShortWithAvatars ); ui->tracksView->setFrameShape( QFrame::NoFrame );
ui->tracksView->overlay()->setEnabled( false ); ui->tracksView->setAttribute( Qt::WA_MacShowFocusRect, 0 );
ui->tracksView->setPlaylistModel( m_tracksModel ); ui->tracksView->setStyleSheet( "QTreeView { background-color: transparent; }" );
ui->tracksView->setAutoResize( true ); TomahawkStyle::stylePageFrame( ui->trackFrame );
m_tracksModel->setSource( source_ptr() );
ui->tracksView->setPalette( trackViewPal ); QFont f;
ui->tracksView->setAlternatingRowColors( false ); f.setBold( true );
ui->tracksView->setFrameShape( QFrame::NoFrame ); QFontMetrics fm( f );
ui->tracksView->setAttribute( Qt::WA_MacShowFocusRect, 0 ); ui->tracksView->setMinimumWidth( fm.width( tr( "Recently played tracks" ) ) * 2 );
}
m_recentAlbumsModel = new AlbumModel( ui->additionsView ); {
ui->additionsView->setPlayableModel( m_recentAlbumsModel ); RecentPlaylistsModel* model = new RecentPlaylistsModel( HISTORY_PLAYLIST_ITEMS, this );
ui->additionsView->proxyModel()->sort( -1 );
QScrollArea* area = new QScrollArea(); ui->playlistWidget->setFrameShape( QFrame::NoFrame );
area->setWidgetResizable( true ); ui->playlistWidget->setAttribute( Qt::WA_MacShowFocusRect, 0 );
area->setVerticalScrollBarPolicy( Qt::ScrollBarAlwaysOn ); ui->playlistWidget->setItemDelegate( new PlaylistDelegate() );
area->setWidget( widget ); ui->playlistWidget->setModel( model );
ui->playlistWidget->overlay()->resize( 380, 86 );
ui->playlistWidget->setVerticalScrollMode( QAbstractItemView::ScrollPerPixel );
QPalette pal = palette(); QPalette p = ui->playlistWidget->palette();
// background: qradialgradient(cx: 0.5, cy: -1.8, fx: 0.5, fy: 0, radius: 2, stop: 0 %1, stop: 1 %2); p.setColor( QPalette::Text, TomahawkStyle::HEADER_TEXT );
pal.setBrush( backgroundRole(), TomahawkStyle::PAGE_BACKGROUND ); p.setColor( QPalette::BrightText, TomahawkStyle::HEADER_TEXT );
area->setPalette( pal ); p.setColor( QPalette::Foreground, TomahawkStyle::HEADER_TEXT );
area->setAutoFillBackground( true ); p.setColor( QPalette::Highlight, TomahawkStyle::HEADER_TEXT );
area->setFrameShape( QFrame::NoFrame ); p.setColor( QPalette::HighlightedText, TomahawkStyle::HEADER_BACKGROUND );
area->setAttribute( Qt::WA_MacShowFocusRect, 0 );
QVBoxLayout* layout = new QVBoxLayout(); ui->playlistWidget->setPalette( p );
layout->addWidget( m_header ); ui->playlistWidget->setMinimumHeight( 400 );
layout->addWidget( area ); ui->playlistWidget->setStyleSheet( "QListView { background-color: transparent; }" );
setLayout( layout ); TomahawkStyle::styleScrollBar( ui->playlistWidget->verticalScrollBar() );
TomahawkUtils::unmarginLayout( layout ); TomahawkStyle::stylePageFrame( ui->playlistFrame );
TomahawkStyle::styleScrollBar( ui->playlistWidget->verticalScrollBar() ); updatePlaylists();
TomahawkStyle::styleScrollBar( ui->additionsView->verticalScrollBar() ); connect( ui->playlistWidget, SIGNAL( activated( QModelIndex ) ), SLOT( onPlaylistActivated( QModelIndex ) ) );
connect( model, SIGNAL( emptinessChanged( bool ) ), this, SLOT( updatePlaylists() ) );
}
QFont f; {
f.setBold( true ); m_recentAlbumsModel = new AlbumModel( ui->additionsView );
QFontMetrics fm( f ); ui->additionsView->setPlayableModel( m_recentAlbumsModel );
ui->tracksView->setMinimumWidth( fm.width( tr( "Recently played tracks" ) ) * 2 ); ui->additionsView->proxyModel()->sort( -1 );
QPalette p = ui->label->palette(); ui->additionsView->setStyleSheet( "QListView { background-color: transparent; }" );
p.setColor( QPalette::Foreground, TomahawkStyle::PAGE_FOREGROUND ); TomahawkStyle::stylePageFrame( ui->additionsFrame );
p.setColor( QPalette::Text, TomahawkStyle::PAGE_TEXT ); TomahawkStyle::styleScrollBar( ui->additionsView->verticalScrollBar() );
}
ui->label->setPalette( p ); {
ui->label_2->setPalette( p ); QFont f = ui->label->font();
ui->label_3->setPalette( p ); f.setBold( false );
f.setFamily( "Fauna One" );
ui->playlistWidget->setStyleSheet( "QListView { background-color: transparent; }" ); QPalette p = ui->label->palette();
TomahawkStyle::stylePageFrame( ui->playlistFrame ); p.setColor( QPalette::Foreground, TomahawkStyle::PAGE_CAPTION );
ui->additionsView->setStyleSheet( "QListView { background-color: transparent; }" ); ui->label->setFont( f );
TomahawkStyle::stylePageFrame( ui->additionsFrame ); ui->label_2->setFont( f );
ui->label->setPalette( p );
ui->label_2->setPalette( p );
}
ui->tracksView->setStyleSheet( "QTreeView { background-color: transparent; }" ); {
TomahawkStyle::stylePageFrame( ui->trackFrame ); QFont f = ui->playlistLabel->font();
f.setBold( false );
f.setFamily( "Fauna One" );
QPalette p = ui->playlistLabel->palette();
p.setColor( QPalette::Foreground, TomahawkStyle::HEADER_TEXT );
ui->playlistLabel->setFont( f );
ui->playlistLabel->setPalette( p );
}
{
QScrollArea* area = new QScrollArea();
area->setWidgetResizable( true );
area->setVerticalScrollBarPolicy( Qt::ScrollBarAlwaysOn );
area->setWidget( widget );
QPalette pal = palette();
pal.setBrush( backgroundRole(), TomahawkStyle::HEADER_BACKGROUND );
area->setPalette( pal );
area->setAutoFillBackground( true );
area->setFrameShape( QFrame::NoFrame );
area->setAttribute( Qt::WA_MacShowFocusRect, 0 );
QVBoxLayout* layout = new QVBoxLayout();
layout->addWidget( m_header );
layout->addWidget( area );
setLayout( layout );
TomahawkUtils::unmarginLayout( layout );
}
{
QPalette pal = palette();
pal.setBrush( backgroundRole(), TomahawkStyle::PAGE_BACKGROUND );
ui->widget->setPalette( pal );
ui->widget->setAutoFillBackground( true );
}
MetaPlaylistInterface* mpl = new MetaPlaylistInterface(); MetaPlaylistInterface* mpl = new MetaPlaylistInterface();
mpl->addChildInterface( ui->tracksView->playlistInterface() ); mpl->addChildInterface( ui->tracksView->playlistInterface() );
@@ -146,8 +190,6 @@ Dashboard::Dashboard( QWidget* parent )
connect( SourceList::instance(), SIGNAL( ready() ), SLOT( onSourcesReady() ) ); connect( SourceList::instance(), SIGNAL( ready() ), SLOT( onSourcesReady() ) );
connect( SourceList::instance(), SIGNAL( sourceAdded( Tomahawk::source_ptr ) ), SLOT( onSourceAdded( Tomahawk::source_ptr ) ) ); connect( SourceList::instance(), SIGNAL( sourceAdded( Tomahawk::source_ptr ) ), SLOT( onSourceAdded( Tomahawk::source_ptr ) ) );
connect( ui->playlistWidget, SIGNAL( activated( QModelIndex ) ), SLOT( onPlaylistActivated( QModelIndex ) ) );
connect( model, SIGNAL( emptinessChanged( bool ) ), this, SLOT( updatePlaylists() ) );
} }

View File

@@ -7,188 +7,265 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>965</width> <width>965</width>
<height>1179</height> <height>616</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
<string notr="true" extracomment="not translatable because not shown to the user">Form</string> <string notr="true" extracomment="not translatable because not shown to the user">Form</string>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout" stretch="0,0,1"> <layout class="QVBoxLayout" name="verticalLayout_3">
<property name="spacing"> <property name="spacing">
<number>16</number> <number>0</number>
</property> </property>
<property name="margin"> <property name="margin">
<number>12</number> <number>0</number>
</property> </property>
<item> <item>
<layout class="QHBoxLayout" name="horizontalLayout_2"> <widget class="QWidget" name="widget" native="true">
<property name="margin"> <layout class="QVBoxLayout" name="verticalLayout">
<number>0</number>
</property>
<item>
<widget class="QFrame" name="trackFrame">
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<layout class="QVBoxLayout" name="verticalLayout_6">
<property name="spacing">
<number>4</number>
</property>
<property name="leftMargin">
<number>8</number>
</property>
<property name="topMargin">
<number>4</number>
</property>
<property name="rightMargin">
<number>8</number>
</property>
<property name="bottomMargin">
<number>8</number>
</property>
<item>
<widget class="QLabel" name="label">
<property name="font">
<font>
<pointsize>18</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Recently Played Tracks</string>
</property>
<property name="margin">
<number>0</number>
</property>
</widget>
</item>
<item>
<widget class="PlaylistView" name="tracksView">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="headerHidden">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QFrame" name="additionsFrame">
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<layout class="QVBoxLayout" name="verticalLayout_5">
<property name="spacing">
<number>4</number>
</property>
<property name="leftMargin">
<number>8</number>
</property>
<property name="topMargin">
<number>4</number>
</property>
<property name="rightMargin">
<number>8</number>
</property>
<property name="bottomMargin">
<number>4</number>
</property>
<item>
<widget class="QLabel" name="label_2">
<property name="font">
<font>
<family>Arial</family>
<pointsize>18</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Recent Additions</string>
</property>
<property name="margin">
<number>0</number>
</property>
</widget>
</item>
<item>
<widget class="GridView" name="additionsView">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>190</height>
</size>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QFrame" name="playlistFrame">
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<layout class="QVBoxLayout" name="verticalLayout_4">
<property name="spacing"> <property name="spacing">
<number>4</number> <number>0</number>
</property> </property>
<property name="leftMargin"> <property name="leftMargin">
<number>8</number> <number>0</number>
</property> </property>
<property name="topMargin"> <property name="topMargin">
<number>4</number> <number>16</number>
</property> </property>
<property name="rightMargin"> <property name="rightMargin">
<number>8</number> <number>0</number>
</property> </property>
<property name="bottomMargin"> <property name="bottomMargin">
<number>4</number> <number>16</number>
</property> </property>
<item> <item>
<widget class="QLabel" name="label_3"> <layout class="QHBoxLayout" name="horizontalLayout_2">
<property name="font"> <property name="leftMargin">
<font> <number>12</number>
<family>Arial</family>
<pointsize>18</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property> </property>
<property name="text"> <property name="topMargin">
<string>Newest Stations &amp; Playlists</string>
</property>
<property name="margin">
<number>0</number> <number>0</number>
</property> </property>
</widget> <property name="rightMargin">
<number>12</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QFrame" name="trackFrame">
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<layout class="QVBoxLayout" name="verticalLayout_6">
<property name="spacing">
<number>4</number>
</property>
<property name="leftMargin">
<number>8</number>
</property>
<property name="topMargin">
<number>4</number>
</property>
<property name="rightMargin">
<number>8</number>
</property>
<property name="bottomMargin">
<number>4</number>
</property>
<item>
<widget class="QLabel" name="label">
<property name="font">
<font>
<pointsize>20</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Recently Played Tracks</string>
</property>
<property name="margin">
<number>0</number>
</property>
</widget>
</item>
<item>
<widget class="PlaylistView" name="tracksView">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="headerHidden">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QFrame" name="additionsFrame">
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<layout class="QVBoxLayout" name="verticalLayout_5">
<property name="spacing">
<number>4</number>
</property>
<property name="leftMargin">
<number>8</number>
</property>
<property name="topMargin">
<number>4</number>
</property>
<property name="rightMargin">
<number>8</number>
</property>
<property name="bottomMargin">
<number>4</number>
</property>
<item>
<widget class="QLabel" name="label_2">
<property name="font">
<font>
<family>Arial</family>
<pointsize>20</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Recent Additions</string>
</property>
<property name="margin">
<number>0</number>
</property>
</widget>
</item>
<item>
<widget class="GridView" name="additionsView">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>190</height>
</size>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</item> </item>
</layout>
</widget>
</item>
<item>
<widget class="Line" name="lineAbove">
<property name="maximumSize">
<size>
<width>16777215</width>
<height>1</height>
</size>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<widget class="Line" name="lineBelow">
<property name="maximumSize">
<size>
<width>16777215</width>
<height>1</height>
</size>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<widget class="QWidget" name="playlistContainer" native="true">
<layout class="QVBoxLayout" name="verticalLayout_2">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>12</number>
</property>
<property name="topMargin">
<number>16</number>
</property>
<property name="rightMargin">
<number>12</number>
</property>
<property name="bottomMargin">
<number>16</number>
</property>
<item> <item>
<widget class="PlaylistWidget" name="playlistWidget"/> <widget class="QFrame" name="playlistFrame">
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<layout class="QVBoxLayout" name="verticalLayout_4">
<property name="spacing">
<number>4</number>
</property>
<property name="leftMargin">
<number>8</number>
</property>
<property name="topMargin">
<number>4</number>
</property>
<property name="rightMargin">
<number>8</number>
</property>
<property name="bottomMargin">
<number>4</number>
</property>
<item>
<widget class="QLabel" name="playlistLabel">
<property name="font">
<font>
<family>Arial</family>
<pointsize>20</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Newest Stations &amp; Playlists</string>
</property>
<property name="margin">
<number>0</number>
</property>
</widget>
</item>
<item>
<widget class="PlaylistWidget" name="playlistWidget"/>
</item>
</layout>
</widget>
</item> </item>
</layout> </layout>
</widget> </widget>
@@ -209,16 +286,16 @@
</layout> </layout>
</widget> </widget>
<customwidgets> <customwidgets>
<customwidget>
<class>PlaylistView</class>
<extends>QTreeView</extends>
<header location="global">playlist/PlaylistView.h</header>
</customwidget>
<customwidget> <customwidget>
<class>GridView</class> <class>GridView</class>
<extends>QListView</extends> <extends>QListView</extends>
<header location="global">playlist/GridView.h</header> <header location="global">playlist/GridView.h</header>
</customwidget> </customwidget>
<customwidget>
<class>PlaylistView</class>
<extends>QTreeView</extends>
<header>playlist/PlaylistView.h</header>
</customwidget>
<customwidget> <customwidget>
<class>PlaylistWidget</class> <class>PlaylistWidget</class>
<extends>QListWidget</extends> <extends>QListWidget</extends>