Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc
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
Commits
00d1ebdf
Commit
00d1ebdf
authored
Dec 29, 2010
by
Srikanth Raju
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Qt/ML: Extend Playlist model from VLCModel
parent
ed89fe73
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
36 additions
and
53 deletions
+36
-53
modules/gui/qt4/components/playlist/playlist_item.hpp
modules/gui/qt4/components/playlist/playlist_item.hpp
+2
-2
modules/gui/qt4/components/playlist/playlist_model.cpp
modules/gui/qt4/components/playlist/playlist_model.cpp
+20
-33
modules/gui/qt4/components/playlist/playlist_model.hpp
modules/gui/qt4/components/playlist/playlist_model.hpp
+14
-18
No files found.
modules/gui/qt4/components/playlist/playlist_item.hpp
View file @
00d1ebdf
...
...
@@ -49,11 +49,11 @@ public:
void
removeChildren
();
void
takeChildAt
(
int
);
PLItem
*
child
(
int
row
)
{
return
children
.
value
(
row
);
}
PLItem
*
child
(
int
row
)
const
{
return
children
.
value
(
row
);
}
int
childCount
()
const
{
return
children
.
count
();
}
PLItem
*
parent
()
{
return
parentItem
;
}
input_item_t
*
inputItem
()
{
return
p_input
;
}
input_item_t
*
inputItem
()
const
{
return
p_input
;
}
int
id
()
{
return
i_id
;
}
bool
operator
<
(
PLItem
&
);
...
...
modules/gui/qt4/components/playlist/playlist_model.cpp
View file @
00d1ebdf
...
...
@@ -66,9 +66,8 @@ PLModel::PLModel( playlist_t *_p_playlist, /* THEPL */
intf_thread_t
*
_p_intf
,
/* main Qt p_intf */
playlist_item_t
*
p_root
,
QObject
*
parent
)
/* Basic Qt parent */
:
QAbstractItemModel
(
parent
)
:
VLCModel
(
_p_intf
,
parent
)
{
p_intf
=
_p_intf
;
p_playlist
=
_p_playlist
;
i_cached_id
=
-
1
;
i_cached_input_id
=
-
1
;
...
...
@@ -338,6 +337,21 @@ QVariant PLModel::data( const QModelIndex &index, const int role ) const
QString
returninfo
;
if
(
metadata
==
COLUMN_NUMBER
)
returninfo
=
QString
::
number
(
index
.
row
()
+
1
);
else
if
(
metadata
==
COLUMN_COVER
)
{
QString
artUrl
;
artUrl
=
InputManager
::
decodeArtURL
(
item
->
inputItem
()
);
if
(
artUrl
.
isEmpty
()
)
{
for
(
int
i
=
0
;
i
<
item
->
childCount
();
i
++
)
{
artUrl
=
InputManager
::
decodeArtURL
(
item
->
child
(
i
)
->
inputItem
()
);
if
(
!
artUrl
.
isEmpty
()
)
break
;
}
}
return
QVariant
(
artUrl
);
}
else
{
char
*
psz
=
psz_column_meta
(
item
->
p_input
,
metadata
);
...
...
@@ -558,34 +572,6 @@ PLItem * PLModel::findInner( PLItem *root, int i_id, bool b_input ) const
return
NULL
;
}
int
PLModel
::
columnToMeta
(
int
_column
)
{
int
meta
=
1
;
int
column
=
0
;
while
(
column
!=
_column
&&
meta
!=
COLUMN_END
)
{
meta
<<=
1
;
column
++
;
}
return
meta
;
}
int
PLModel
::
columnFromMeta
(
int
meta_col
)
{
int
meta
=
1
;
int
column
=
0
;
while
(
meta
!=
meta_col
&&
meta
!=
COLUMN_END
)
{
meta
<<=
1
;
column
++
;
}
return
column
;
}
bool
PLModel
::
canEdit
()
const
{
return
(
...
...
@@ -601,11 +587,12 @@ bool PLModel::canEdit() const
QString
PLModel
::
getMeta
(
const
QModelIndex
&
index
,
int
meta
)
{
return
index
.
model
()
->
index
(
index
.
row
(),
PLModel
::
columnFromMeta
(
meta
),
index
.
parent
()
)
.
data
().
toString
();
columnFromMeta
(
meta
),
index
.
parent
()
)
.
data
().
toString
();
}
QPixmap
PLModel
::
getArtPixmap
(
const
QModelIndex
&
index
,
const
QSize
&
size
)
{
PLItem
*
item
=
static_cast
<
PLItem
*>
(
index
.
internalPointer
()
);
...
...
modules/gui/qt4/components/playlist/playlist_model.hpp
View file @
00d1ebdf
...
...
@@ -29,13 +29,14 @@
# include "config.h"
#endif
#include "qt4.hpp"
#include <vlc_input.h>
#include <vlc_playlist.h>
#include "vlc_model.hpp"
#include "playlist_item.hpp"
#include <QObject>
#include <QEvent>
#include <QSignalMapper>
#include <QMimeData>
#include <QAbstractItemModel>
#include <QVariant>
...
...
@@ -46,20 +47,14 @@ class PLSelector;
class
PlMimeData
;
class
QSignalMapper
;
class
PLModel
:
public
QAbstractItem
Model
class
PLModel
:
public
VLC
Model
{
Q_OBJECT
public:
enum
{
IsCurrentRole
=
Qt
::
UserRole
,
IsLeafNodeRole
,
IsCurrentsParentNodeRole
};
PLModel
(
playlist_t
*
,
intf_thread_t
*
,
playlist_item_t
*
,
QObject
*
parent
=
0
);
~
PLModel
();
virtual
~
PLModel
();
/*** QModel subclassing ***/
...
...
@@ -86,18 +81,16 @@ public:
QStringList
selectedURIs
();
QModelIndex
index
(
PLItem
*
,
const
int
c
)
const
;
QModelIndex
index
(
const
int
i_id
,
const
int
c
);
QModelIndex
currentIndex
()
const
;
virtual
QModelIndex
currentIndex
()
const
;
bool
isParent
(
const
QModelIndex
&
index
,
const
QModelIndex
&
current
)
const
;
bool
isCurrent
(
const
QModelIndex
&
index
)
const
;
int
itemId
(
const
QModelIndex
&
index
)
const
;
static
int
columnFromMeta
(
int
meta_column
);
static
int
columnToMeta
(
int
column
);
static
QString
getMeta
(
const
QModelIndex
&
index
,
int
meta
);
static
QPixmap
getArtPixmap
(
const
QModelIndex
&
index
,
const
QSize
&
size
);
static
QString
getMeta
(
const
QModelIndex
&
index
,
int
meta
);
/* Actions */
bool
popup
(
const
QModelIndex
&
index
,
const
QPoint
&
point
,
const
QModelIndexList
&
list
);
virtual
bool
popup
(
const
QModelIndex
&
index
,
const
QPoint
&
point
,
const
QModelIndexList
&
list
);
void
doDelete
(
QModelIndexList
selected
);
void
search
(
const
QString
&
search_text
,
const
QModelIndex
&
root
,
bool
b_recursive
);
void
sort
(
const
int
column
,
Qt
::
SortOrder
order
);
...
...
@@ -111,13 +104,17 @@ public:
return
static_cast
<
PLItem
*>
(
index
.
internalPointer
()
);
else
return
rootItem
;
}
virtual
int
getId
(
QModelIndex
index
)
const
{
return
getItem
(
index
)
->
id
();
}
signals:
void
currentChanged
(
const
QModelIndex
&
);
void
rootChanged
();
public
slots
:
void
activateItem
(
const
QModelIndex
&
index
);
v
irtual
v
oid
activateItem
(
const
QModelIndex
&
index
);
void
activateItem
(
playlist_item_t
*
p_item
);
private:
...
...
@@ -125,7 +122,6 @@ private:
PLItem
*
rootItem
;
playlist_t
*
p_playlist
;
intf_thread_t
*
p_intf
;
static
QIcon
icons
[
ITEM_TYPE_NUMBER
];
...
...
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