1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-08-05 13:47:26 +02:00

Differentiate between removable and deletable viewpages to allow showing whatsnew-page after removing it

This commit is contained in:
Dominik Schmidt
2016-01-06 01:18:07 +01:00
parent 5aa875c40a
commit cde395edf0
7 changed files with 29 additions and 4 deletions

View File

@@ -76,6 +76,8 @@ public:
*/ */
virtual bool addPageItem() const; virtual bool addPageItem() const;
virtual bool isRemovable() const { return false; }
/** /**
* This page is actually a constant page that will be shown on every * This page is actually a constant page that will be shown on every
* restart of Tomahawk until the user selects it to be removed. * restart of Tomahawk until the user selects it to be removed.

View File

@@ -538,7 +538,7 @@ SourceDelegate::paint( QPainter* painter, const QStyleOptionViewItem& option, co
paintStandardItem( painter, optIndentation, index, count ); paintStandardItem( painter, optIndentation, index, count );
} }
else if ( type == SourcesModel::TemporaryPage || type == SourcesModel::DeletablePage ) else if ( type == SourcesModel::TemporaryPage || type == SourcesModel::DeletablePage || type == SourcesModel::RemovablePage )
{ {
if ( opt.state & QStyle::State_MouseOver ) if ( opt.state & QStyle::State_MouseOver )
{ {
@@ -668,7 +668,7 @@ SourceDelegate::editorEvent( QEvent* event, QAbstractItemModel* model, const QSt
if ( event->type() == QEvent::MouseButtonRelease || event->type() == QEvent::MouseButtonPress ) if ( event->type() == QEvent::MouseButtonRelease || event->type() == QEvent::MouseButtonPress )
{ {
SourcesModel::RowType type = static_cast< SourcesModel::RowType >( index.data( SourcesModel::SourceTreeItemTypeRole ).toInt() ); SourcesModel::RowType type = static_cast< SourcesModel::RowType >( index.data( SourcesModel::SourceTreeItemTypeRole ).toInt() );
if ( type == SourcesModel::TemporaryPage || type == SourcesModel::DeletablePage ) if ( type == SourcesModel::TemporaryPage || type == SourcesModel::DeletablePage || type == SourcesModel::RemovablePage )
{ {
SourceTreeItem* gpi = index.data( SourcesModel::SourceTreeItemRole ).value< SourceTreeItem* >(); SourceTreeItem* gpi = index.data( SourcesModel::SourceTreeItemRole ).value< SourceTreeItem* >();
Q_ASSERT( gpi ); Q_ASSERT( gpi );

View File

@@ -334,7 +334,15 @@ SourcesModel::appendPageItem( const QString& name, ViewPage* page, int sortValue
page->pixmap(), page->pixmap(),
std::bind( &ViewManager::showDynamicPage, ViewManager::instance(), name ), std::bind( &ViewManager::showDynamicPage, ViewManager::instance(), name ),
std::bind( &ViewManager::dynamicPageWidget, ViewManager::instance(), name ) ); std::bind( &ViewManager::dynamicPageWidget, ViewManager::instance(), name ) );
pageItem->setDeletable( page->isDeletable() );
if ( page->isDeletable() )
{
pageItem->setDeletable( true );
}
else
{
pageItem->setRemovable( page->isRemovable() );
}
if ( sortValue ) if ( sortValue )
{ {

View File

@@ -63,6 +63,7 @@ public:
TemporaryPage = 7, TemporaryPage = 7,
LovedTracksPage = 10, LovedTracksPage = 10,
DeletablePage = 15, DeletablePage = 15,
RemovablePage = 16,
Collection = 14, Collection = 14,
ScriptCollection = 11, ScriptCollection = 11,

View File

@@ -132,6 +132,18 @@ GenericPageItem::setDeletable( bool deletable )
} }
} }
void
GenericPageItem::setRemovable( bool removable )
{
if ( removable )
{
setRowType( SourcesModel::RemovablePage );
}
else
{
setRowType( SourcesModel::GenericPage );
}
}
int int
GenericPageItem::peerSortValue() const GenericPageItem::peerSortValue() const

View File

@@ -43,6 +43,7 @@ public:
virtual int peerSortValue() const; // How to sort relative to peers in the tree. virtual int peerSortValue() const; // How to sort relative to peers in the tree.
virtual bool isBeingPlayed() const; virtual bool isBeingPlayed() const;
void setRemovable( bool removable );
void setDeletable( bool deletable ); void setDeletable( bool deletable );
void setText( const QString& text ); void setText( const QString& text );
void setSortValue( int value ); void setSortValue( int value );

View File

@@ -91,7 +91,8 @@ public:
const QString pixmapPath() const { return ( RESPATH "images/whatsnew.svg" ); } const QString pixmapPath() const { return ( RESPATH "images/whatsnew.svg" ); }
bool addPageItem() const; bool addPageItem() const;
bool isDeletable() const { return true; } bool isRemovable() const override { return true; }
bool isDeletable() const override { return false; }
void onItemDeleted(); void onItemDeleted();
int sortValue() { return 1; } int sortValue() { return 1; }