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