Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-2-2
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
videolan
vlc-2-2
Commits
a4a89127
Commit
a4a89127
authored
Jun 06, 2012
by
Francois Cartegnie
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Qt: PL: Request missing art for visible items
parent
2d6e1751
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
44 additions
and
6 deletions
+44
-6
modules/gui/qt4/components/playlist/playlist_model.cpp
modules/gui/qt4/components/playlist/playlist_model.cpp
+15
-1
modules/gui/qt4/components/playlist/playlist_model.hpp
modules/gui/qt4/components/playlist/playlist_model.hpp
+1
-0
modules/gui/qt4/components/playlist/standardpanel.cpp
modules/gui/qt4/components/playlist/standardpanel.cpp
+1
-0
modules/gui/qt4/components/playlist/views.cpp
modules/gui/qt4/components/playlist/views.cpp
+7
-0
modules/gui/qt4/components/playlist/views.hpp
modules/gui/qt4/components/playlist/views.hpp
+1
-0
modules/gui/qt4/components/playlist/vlc_model.cpp
modules/gui/qt4/components/playlist/vlc_model.cpp
+10
-5
modules/gui/qt4/components/playlist/vlc_model.hpp
modules/gui/qt4/components/playlist/vlc_model.hpp
+1
-0
modules/gui/qt4/input_manager.cpp
modules/gui/qt4/input_manager.cpp
+8
-0
No files found.
modules/gui/qt4/components/playlist/playlist_model.cpp
View file @
a4a89127
...
...
@@ -688,7 +688,6 @@ void PLModel::rebuild( playlist_item_t *p_root )
/* And signal the view */
reset
();
if
(
p_root
)
emit
rootIndexChanged
();
}
...
...
@@ -910,6 +909,21 @@ void PLModel::clearPlaylist()
doDelete
(
l
);
}
void
PLModel
::
ensureArtRequested
(
const
QModelIndex
&
index
)
{
if
(
index
.
isValid
()
&&
hasChildren
(
index
)
)
{
int
nbnodes
=
rowCount
(
index
);
QModelIndex
child
;
for
(
int
row
=
0
;
row
<
nbnodes
;
row
++
)
{
child
=
index
.
child
(
row
,
0
);
if
(
child
.
isValid
()
&&
getArtUrl
(
child
).
isEmpty
()
)
THEMIM
->
getIM
()
->
requestArtUpdate
(
getItem
(
child
)
->
inputItem
()
);
}
}
}
/*********** Popup *********/
bool
PLModel
::
popup
(
const
QModelIndex
&
index
,
const
QPoint
&
point
,
const
QModelIndexList
&
list
)
{
...
...
modules/gui/qt4/components/playlist/playlist_model.hpp
View file @
a4a89127
...
...
@@ -121,6 +121,7 @@ signals:
public
slots
:
virtual
void
activateItem
(
const
QModelIndex
&
index
);
void
clearPlaylist
();
void
ensureArtRequested
(
const
QModelIndex
&
index
);
private:
/* General */
PLItem
*
rootItem
;
...
...
modules/gui/qt4/components/playlist/standardpanel.cpp
View file @
a4a89127
...
...
@@ -216,6 +216,7 @@ void StandardPLPanel::browseInto( const QModelIndex &index )
/* Store new rootindexid*/
currentRootIndexId
=
model
->
itemId
(
index
);
model
->
ensureArtRequested
(
index
);
}
emit
viewChanged
(
index
);
...
...
modules/gui/qt4/components/playlist/views.cpp
View file @
a4a89127
...
...
@@ -350,6 +350,13 @@ void PlListView::keyPressEvent( QKeyEvent *event )
QListView
::
keyPressEvent
(
event
);
}
void
PlTreeView
::
setModel
(
QAbstractItemModel
*
model
)
{
QTreeView
::
setModel
(
model
);
CONNECT
(
this
,
expanded
(
const
QModelIndex
&
),
model
,
ensureArtRequested
(
const
QModelIndex
&
)
);
}
void
PlTreeView
::
startDrag
(
Qt
::
DropActions
supportedActions
)
{
plViewStartDrag
(
this
,
supportedActions
);
...
...
modules/gui/qt4/components/playlist/views.hpp
View file @
a4a89127
...
...
@@ -93,6 +93,7 @@ protected:
virtual
void
startDrag
(
Qt
::
DropActions
supportedActions
);
virtual
void
dragMoveEvent
(
QDragMoveEvent
*
event
);
virtual
void
keyPressEvent
(
QKeyEvent
*
event
);
virtual
void
setModel
(
QAbstractItemModel
*
);
};
class
PicFlowView
:
public
QAbstractItemView
...
...
modules/gui/qt4/components/playlist/vlc_model.cpp
View file @
a4a89127
...
...
@@ -38,13 +38,18 @@ QString VLCModel::getMeta( const QModelIndex & index, int meta )
data
().
toString
();
}
QString
VLCModel
::
getArtUrl
(
const
QModelIndex
&
index
)
{
return
index
.
model
()
->
index
(
index
.
row
(),
columnFromMeta
(
COLUMN_COVER
),
index
.
parent
()
)
.
data
().
toString
();
}
QPixmap
VLCModel
::
getArtPixmap
(
const
QModelIndex
&
index
,
const
QSize
&
size
)
{
QString
artUrl
;
artUrl
=
index
.
model
()
->
index
(
index
.
row
(),
columnFromMeta
(
COLUMN_COVER
),
index
.
parent
()
)
.
data
().
toString
();
QString
artUrl
=
VLCModel
::
getArtUrl
(
index
)
;
QPixmap
artPix
;
QString
key
=
artUrl
+
QString
(
"%1%2"
).
arg
(
size
.
width
()).
arg
(
size
.
height
());
...
...
modules/gui/qt4/components/playlist/vlc_model.hpp
View file @
a4a89127
...
...
@@ -58,6 +58,7 @@ public:
virtual
~
VLCModel
();
static
QString
getMeta
(
const
QModelIndex
&
index
,
int
meta
);
static
QPixmap
getArtPixmap
(
const
QModelIndex
&
index
,
const
QSize
&
size
);
static
QString
getArtUrl
(
const
QModelIndex
&
index
);
static
int
columnToMeta
(
int
_column
)
{
...
...
modules/gui/qt4/input_manager.cpp
View file @
a4a89127
...
...
@@ -639,6 +639,14 @@ void InputManager::requestArtUpdate( input_item_t *p_item )
if
(
p_item
)
{
/* check if it has already been enqueued */
if
(
p_item
->
p_meta
)
{
int
status
=
vlc_meta_GetStatus
(
p_item
->
p_meta
);
if
(
status
&
(
ITEM_ART_NOTFOUND
|
ITEM_ART_FETCHED
|
ITEM_ARTURL_FETCHED
|
ITEM_PREPARSED
)
)
return
;
}
playlist_AskForArtEnqueue
(
pl_Get
(
p_intf
),
p_item
);
/* No input will signal the cover art to update,
* let's do it ourself */
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment