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

Merge pull request #400 from tomahawk-player/fix-dropdownbutton

Fix DropDownButton in Playlist view
This commit is contained in:
Christian Muehlhaeuser
2016-01-15 18:26:57 +01:00
4 changed files with 34 additions and 2 deletions

View File

@@ -444,14 +444,21 @@ PlayableModel::flags( const QModelIndex& index ) const
if ( index.isValid() ) if ( index.isValid() )
{ {
Qt::ItemFlags returnFlags = defaultFlags;
if ( index.column() == 0 ) if ( index.column() == 0 )
{ {
return Qt::ItemIsDragEnabled | Qt::ItemIsDropEnabled | defaultFlags; returnFlags |= Qt::ItemIsDragEnabled | Qt::ItemIsDropEnabled;
} }
else if ( index.column() == PlayableModel::Download ) else if ( index.column() == PlayableModel::Download )
{ {
return Qt::ItemIsEditable | defaultFlags; returnFlags |= Qt::ItemIsEditable | defaultFlags;
} }
if ( areAllColumnsEditable() ) {
returnFlags |= Qt::ItemIsEditable;
}
return returnFlags;
} }
return Qt::ItemIsDropEnabled | defaultFlags; return Qt::ItemIsDropEnabled | defaultFlags;
@@ -1171,6 +1178,22 @@ PlayableModel::setIcon( const QPixmap& pixmap )
} }
void
PlayableModel::setAllColumnsEditable( bool editable )
{
Q_D( PlayableModel );
d->areAllColumnsEditable = editable;
}
bool
PlayableModel::areAllColumnsEditable() const
{
Q_D( const PlayableModel );
return d->areAllColumnsEditable;
}
int int
PlayableModel::trackCount() const PlayableModel::trackCount() const
{ {

View File

@@ -96,6 +96,11 @@ public:
virtual QPixmap icon() const; virtual QPixmap icon() const;
virtual void setIcon( const QPixmap& pixmap ); virtual void setIcon( const QPixmap& pixmap );
// HACK: we need to set column 0 editable for DropDownButton in TrackView
void setAllColumnsEditable( bool editable );
bool areAllColumnsEditable() const;
virtual int trackCount() const; virtual int trackCount() const;
virtual int itemCount() const; virtual int itemCount() const;

View File

@@ -38,6 +38,7 @@ public:
, rootItem( new PlayableItem( 0 ) ) , rootItem( new PlayableItem( 0 ) )
, readOnly( true ) , readOnly( true )
, loading( _loading ) , loading( _loading )
, areAllColumnsEditable( false )
{ {
} }
@@ -58,6 +59,7 @@ private:
QStringList header; QStringList header;
bool loading; bool loading;
bool areAllColumnsEditable;
}; };
#endif // PLAYABLEMODEL_P_H #endif // PLAYABLEMODEL_P_H

View File

@@ -885,7 +885,9 @@ PlaylistItemDelegate::editorEvent( QEvent* event, QAbstractItemModel* model, con
} }
else if ( m_view->proxyModel()->style() == PlayableProxyModel::Locker && index.column() == PlayableModel::Download ) else if ( m_view->proxyModel()->style() == PlayableProxyModel::Locker && index.column() == PlayableModel::Download )
{ {
m_model->sourceModel()->setAllColumnsEditable( true );
m_view->edit( index ); m_view->edit( index );
m_model->sourceModel()->setAllColumnsEditable( false );
return true; return true;
} }