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
596ccd76
Commit
596ccd76
authored
Jun 26, 2006
by
Clément Stenac
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Some more Qt playlist code
parent
f2627995
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
55 additions
and
20 deletions
+55
-20
modules/gui/qt4/components/playlist/panels.hpp
modules/gui/qt4/components/playlist/panels.hpp
+1
-1
modules/gui/qt4/components/playlist/standardpanel.cpp
modules/gui/qt4/components/playlist/standardpanel.cpp
+5
-2
modules/gui/qt4/dialogs/playlist.cpp
modules/gui/qt4/dialogs/playlist.cpp
+1
-1
modules/gui/qt4/dialogs/playlist.hpp
modules/gui/qt4/dialogs/playlist.hpp
+0
-1
modules/gui/qt4/playlist_model.cpp
modules/gui/qt4/playlist_model.cpp
+43
-13
modules/gui/qt4/playlist_model.hpp
modules/gui/qt4/playlist_model.hpp
+5
-2
No files found.
modules/gui/qt4/components/playlist/panels.hpp
View file @
596ccd76
...
...
@@ -46,7 +46,7 @@ class StandardPLPanel: public PLPanel
{
Q_OBJECT
;
public:
StandardPLPanel
(
QWidget
*
,
intf_thread_t
*
,
playlist_item_t
*
);
StandardPLPanel
(
QWidget
*
,
intf_thread_t
*
,
playlist_
t
*
,
playlist_
item_t
*
);
virtual
~
StandardPLPanel
();
};
...
...
modules/gui/qt4/components/playlist/standardpanel.cpp
View file @
596ccd76
...
...
@@ -26,13 +26,16 @@
#include <QTreeView>
StandardPLPanel
::
StandardPLPanel
(
QWidget
*
_parent
,
intf_thread_t
*
_p_intf
,
playlist_t
*
p_playlist
,
playlist_item_t
*
p_root
)
:
PLPanel
(
_parent
,
_p_intf
)
{
PLModel
*
model
=
new
PLModel
(
p_root
,
-
1
,
this
);
QTreeView
*
view
=
new
QTreeView
(
this
);
PLModel
*
model
=
new
PLModel
(
p_
playlist
,
p_
root
,
-
1
,
this
);
QTreeView
*
view
=
new
QTreeView
(
0
);
view
->
setModel
(
model
);
model
->
Rebuild
();
view
->
show
();
}
StandardPLPanel
::~
StandardPLPanel
()
...
...
modules/gui/qt4/dialogs/playlist.cpp
View file @
596ccd76
...
...
@@ -31,7 +31,7 @@ PlaylistDialog::PlaylistDialog( intf_thread_t *_p_intf ) : QVLCFrame( _p_intf )
{
playlist_t
*
p_playlist
=
(
playlist_t
*
)
vlc_object_find
(
p_intf
,
VLC_OBJECT_PLAYLIST
,
FIND_ANYWHERE
);
new
StandardPLPanel
(
this
,
p_intf
,
p_playlist
->
p_root_category
);
new
StandardPLPanel
(
this
,
p_intf
,
p_playlist
,
p_playlist
->
p_root_category
);
}
PlaylistDialog
::~
PlaylistDialog
()
...
...
modules/gui/qt4/dialogs/playlist.hpp
View file @
596ccd76
...
...
@@ -37,7 +37,6 @@ public:
virtual
~
PlaylistDialog
();
private:
PlaylistDialog
(
intf_thread_t
*
);
intf_thread_t
*
p_intf
;
static
PlaylistDialog
*
instance
;
public
slots
:
};
...
...
modules/gui/qt4/playlist_model.cpp
View file @
596ccd76
...
...
@@ -42,19 +42,31 @@ static int ItemDeleted( vlc_object_t *p_this, const char *psz_variable,
* Playlist item implementation
*************************************************************************/
PLItem
::
PLItem
(
int
_i_id
,
int
_i_input_id
,
PLItem
*
parent
,
PLModel
*
m
)
/**
* Column strings
* Title
* Artist
* Duration
*/
void
PLItem
::
init
(
int
_i_id
,
int
_i_input_id
,
PLItem
*
parent
,
PLModel
*
m
)
{
parentItem
=
parent
;
i_id
=
_i_id
;
i_input_id
=
_i_input_id
;
model
=
m
;
strings
.
append
(
""
);
strings
.
append
(
""
);
strings
.
append
(
""
);
}
PLItem
::
PLItem
(
int
_i_id
,
int
_i_input_id
,
PLItem
*
parent
,
PLModel
*
m
)
{
init
(
_i_id
,
_i_input_id
,
parent
,
m
);
}
PLItem
::
PLItem
(
playlist_item_t
*
p_item
,
PLItem
*
parent
,
PLModel
*
m
)
{
i_id
=
p_item
->
i_id
;
i_input_id
=
p_item
->
p_input
->
i_id
;
parentItem
=
parent
;
model
=
m
;
init
(
p_item
->
i_id
,
p_item
->
p_input
->
i_id
,
parent
,
m
);
}
PLItem
::~
PLItem
()
...
...
@@ -65,6 +77,7 @@ PLItem::~PLItem()
void
PLItem
::
insertChild
(
PLItem
*
item
,
int
i_pos
,
bool
signal
)
{
assert
(
model
);
fprintf
(
stderr
,
"Inserting child
\n
"
);
if
(
signal
)
model
->
beginInsertRows
(
model
->
index
(
this
,
0
),
i_pos
,
i_pos
);
children
.
append
(
item
);
...
...
@@ -79,16 +92,24 @@ int PLItem::row() const
return
0
;
}
void
PLItem
::
update
(
playlist_item_t
*
p_item
)
{
assert
(
p_item
->
p_input
->
i_id
==
i_input_id
);
strings
[
0
]
=
QString
::
fromUtf8
(
p_item
->
p_input
->
psz_name
);
}
/*************************************************************************
* Playlist model implementation
*************************************************************************/
PLModel
::
PLModel
(
playlist_item_t
*
p_root
,
int
i_depth
,
QObject
*
parent
)
PLModel
::
PLModel
(
playlist_t
*
_p_playlist
,
playlist_item_t
*
p_root
,
int
i_depth
,
QObject
*
parent
)
:
QAbstractItemModel
(
parent
)
{
rootItem
=
NULL
;
rootItem
=
new
PLItem
(
p_root
,
NULL
,
this
);
fprintf
(
stderr
,
"%i -> %i, %i -> %i"
,
p_root
->
i_id
,
rootItem
->
i_id
,
p_root
->
p_input
->
i_id
,
rootItem
->
i_input_id
);
p_playlist
=
_p_playlist
;
i_items_to_append
=
0
;
b_need_update
=
false
;
i_cached_id
=
-
1
;
...
...
@@ -275,6 +296,7 @@ PLItem * PLModel::FindInner( PLItem *root, int i_id, bool b_input )
return
childFound
;
}
}
it
++
;
}
return
NULL
;
}
...
...
@@ -298,13 +320,15 @@ void PLModel::customEvent( QEvent *event )
/**** Events processing ****/
void
PLModel
::
ProcessInputItemUpdate
(
int
i_input_id
)
{
assert
(
i_input_id
>=
0
);
UpdateTreeItem
(
FindByInput
(
rootItem
,
i_input_id
),
true
);
if
(
i_input_id
<=
0
)
return
;
PLItem
*
item
=
FindByInput
(
rootItem
,
i_input_id
);
fprintf
(
stderr
,
"Updating %i -> %p
\n
"
,
i_input_id
,
item
);
UpdateTreeItem
(
item
,
true
);
}
void
PLModel
::
ProcessItemRemoval
(
int
i_id
)
{
assert
(
i_id
>=
0
)
;
if
(
i_id
<=
0
)
return
;
if
(
i_id
==
i_cached_id
)
i_cached_id
=
-
1
;
i_cached_input_id
=
-
1
;
...
...
@@ -314,6 +338,7 @@ void PLModel::ProcessItemRemoval( int i_id )
void
PLModel
::
ProcessItemAppend
(
playlist_add_t
*
p_add
)
{
playlist_item_t
*
p_item
=
NULL
;
PLItem
*
newItem
=
NULL
;
i_items_to_append
--
;
if
(
b_need_update
)
return
;
...
...
@@ -323,7 +348,9 @@ void PLModel::ProcessItemAppend( playlist_add_t *p_add )
p_item
=
playlist_ItemGetById
(
p_playlist
,
p_add
->
i_item
);
if
(
!
p_item
||
p_item
->
i_flags
&
PLAYLIST_DBL_FLAG
)
goto
end
;
nodeItem
->
appendChild
(
new
PLItem
(
p_item
,
nodeItem
,
this
)
);
newItem
=
new
PLItem
(
p_item
,
nodeItem
,
this
);
nodeItem
->
appendChild
(
newItem
);
UpdateTreeItem
(
p_item
,
newItem
,
true
);
end:
return
;
...
...
@@ -362,6 +389,7 @@ void PLModel::UpdateNodeChildren( playlist_item_t *p_node, PLItem *root )
for
(
int
i
=
0
;
i
<
p_node
->
i_children
;
i
++
)
{
PLItem
*
newItem
=
new
PLItem
(
p_node
->
pp_children
[
i
],
root
,
this
);
fprintf
(
stderr
,
"New %p
\n
"
,
newItem
);
root
->
appendChild
(
newItem
,
false
);
UpdateTreeItem
(
newItem
,
false
);
if
(
p_node
->
pp_children
[
i
]
->
i_children
!=
-
1
)
...
...
@@ -371,13 +399,15 @@ void PLModel::UpdateNodeChildren( playlist_item_t *p_node, PLItem *root )
void
PLModel
::
UpdateTreeItem
(
PLItem
*
item
,
bool
signal
)
{
playlist_item_t
*
p_item
=
playlist_ItemGetById
(
p_playlist
,
rootI
tem
->
i_id
);
playlist_item_t
*
p_item
=
playlist_ItemGetById
(
p_playlist
,
i
tem
->
i_id
);
UpdateTreeItem
(
p_item
,
item
,
signal
);
}
void
PLModel
::
UpdateTreeItem
(
playlist_item_t
*
p_item
,
PLItem
*
item
,
bool
signal
)
{
/// \todo
fprintf
(
stderr
,
"Updating item %s
\n
"
,
p_item
->
p_input
->
psz_name
);
item
->
update
(
p_item
);
if
(
signal
)
{
// emit
}
...
...
modules/gui/qt4/playlist_model.hpp
View file @
596ccd76
...
...
@@ -50,12 +50,15 @@ public:
int
childCount
()
const
{
return
children
.
count
();
};
QString
columnString
(
int
col
)
{
return
strings
.
value
(
col
);
};
PLItem
*
parent
()
{
return
parentItem
;
};
void
update
(
playlist_item_t
*
);
protected:
QList
<
PLItem
*>
children
;
int
i_id
;
int
i_input_id
;
friend
class
PLModel
;
private:
void
init
(
int
,
int
,
PLItem
*
,
PLModel
*
);
QList
<
QString
>
strings
;
PLItem
*
parentItem
;
...
...
@@ -89,7 +92,7 @@ class PLModel : public QAbstractItemModel
Q_OBJECT
public:
PLModel
(
playlist_item_t
*
,
int
,
QObject
*
parent
=
0
);
PLModel
(
playlist_
t
*
,
playlist_
item_t
*
,
int
,
QObject
*
parent
=
0
);
~
PLModel
();
void
customEvent
(
QEvent
*
);
...
...
@@ -110,6 +113,7 @@ public:
bool
b_need_update
;
int
i_items_to_append
;
void
Rebuild
();
private:
void
addCallbacks
();
void
delCallbacks
();
...
...
@@ -118,7 +122,6 @@ private:
playlist_t
*
p_playlist
;
/* Update processing */
void
Rebuild
();
void
ProcessInputItemUpdate
(
int
i_input_id
);
void
ProcessItemRemoval
(
int
i_id
);
void
ProcessItemAppend
(
playlist_add_t
*
p_add
);
...
...
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