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:
@@ -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.
|
||||||
|
@@ -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 );
|
||||||
|
@@ -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 )
|
||||||
{
|
{
|
||||||
|
@@ -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,
|
||||||
|
@@ -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
|
||||||
|
@@ -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 );
|
||||||
|
@@ -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; }
|
||||||
|
Reference in New Issue
Block a user