mirror of
https://github.com/tomahawk-player/tomahawk.git
synced 2025-04-20 07:52:30 +02:00
Differentiate between removable and deletable viewpages to allow showing whatsnew-page after removing it
This commit is contained in:
parent
5aa875c40a
commit
cde395edf0
@ -76,6 +76,8 @@ public:
|
||||
*/
|
||||
virtual bool addPageItem() const;
|
||||
|
||||
virtual bool isRemovable() const { return false; }
|
||||
|
||||
/**
|
||||
* This page is actually a constant page that will be shown on every
|
||||
* restart of Tomahawk until the user selects it to be removed.
|
||||
|
@ -538,7 +538,7 @@ SourceDelegate::paint( QPainter* painter, const QStyleOptionViewItem& option, co
|
||||
|
||||
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 )
|
||||
{
|
||||
@ -668,7 +668,7 @@ SourceDelegate::editorEvent( QEvent* event, QAbstractItemModel* model, const QSt
|
||||
if ( event->type() == QEvent::MouseButtonRelease || event->type() == QEvent::MouseButtonPress )
|
||||
{
|
||||
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* >();
|
||||
Q_ASSERT( gpi );
|
||||
|
@ -334,7 +334,15 @@ SourcesModel::appendPageItem( const QString& name, ViewPage* page, int sortValue
|
||||
page->pixmap(),
|
||||
std::bind( &ViewManager::showDynamicPage, 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 )
|
||||
{
|
||||
|
@ -63,6 +63,7 @@ public:
|
||||
TemporaryPage = 7,
|
||||
LovedTracksPage = 10,
|
||||
DeletablePage = 15,
|
||||
RemovablePage = 16,
|
||||
|
||||
Collection = 14,
|
||||
ScriptCollection = 11,
|
||||
|
@ -132,6 +132,18 @@ GenericPageItem::setDeletable( bool deletable )
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
GenericPageItem::setRemovable( bool removable )
|
||||
{
|
||||
if ( removable )
|
||||
{
|
||||
setRowType( SourcesModel::RemovablePage );
|
||||
}
|
||||
else
|
||||
{
|
||||
setRowType( SourcesModel::GenericPage );
|
||||
}
|
||||
}
|
||||
|
||||
int
|
||||
GenericPageItem::peerSortValue() const
|
||||
|
@ -43,6 +43,7 @@ public:
|
||||
virtual int peerSortValue() const; // How to sort relative to peers in the tree.
|
||||
virtual bool isBeingPlayed() const;
|
||||
|
||||
void setRemovable( bool removable );
|
||||
void setDeletable( bool deletable );
|
||||
void setText( const QString& text );
|
||||
void setSortValue( int value );
|
||||
|
@ -91,7 +91,8 @@ public:
|
||||
const QString pixmapPath() const { return ( RESPATH "images/whatsnew.svg" ); }
|
||||
|
||||
bool addPageItem() const;
|
||||
bool isDeletable() const { return true; }
|
||||
bool isRemovable() const override { return true; }
|
||||
bool isDeletable() const override { return false; }
|
||||
void onItemDeleted();
|
||||
|
||||
int sortValue() { return 1; }
|
||||
|
Loading…
x
Reference in New Issue
Block a user