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
a20ffdd4
Commit
a20ffdd4
authored
Aug 06, 2006
by
Clément Stenac
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* Add random/loop buttons
* Improve hilighting
parent
fa2f997e
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
121 additions
and
20 deletions
+121
-20
modules/gui/qt4/components/playlist/panels.hpp
modules/gui/qt4/components/playlist/panels.hpp
+4
-0
modules/gui/qt4/components/playlist/standardpanel.cpp
modules/gui/qt4/components/playlist/standardpanel.cpp
+48
-5
modules/gui/qt4/dialogs/playlist.cpp
modules/gui/qt4/dialogs/playlist.cpp
+11
-6
modules/gui/qt4/dialogs/playlist.hpp
modules/gui/qt4/dialogs/playlist.hpp
+1
-1
modules/gui/qt4/main_interface.cpp
modules/gui/qt4/main_interface.cpp
+2
-2
modules/gui/qt4/menus.cpp
modules/gui/qt4/menus.cpp
+2
-0
modules/gui/qt4/playlist_model.cpp
modules/gui/qt4/playlist_model.cpp
+42
-2
modules/gui/qt4/playlist_model.hpp
modules/gui/qt4/playlist_model.hpp
+4
-0
modules/gui/qt4/util/qvlcframe.hpp
modules/gui/qt4/util/qvlcframe.hpp
+7
-4
No files found.
modules/gui/qt4/components/playlist/panels.hpp
View file @
a20ffdd4
...
...
@@ -31,6 +31,7 @@
class
QTreeView
;
class
PLModel
;
class
QPushButton
;
/**
* \todo Share a single model between views using a filterproxy
...
...
@@ -62,10 +63,13 @@ public:
private:
PLModel
*
model
;
QTreeView
*
view
;
QPushButton
*
repeatButton
,
*
randomButton
;
public
slots
:
virtual
void
setRoot
(
int
);
private
slots
:
void
handleExpansion
(
const
QModelIndex
&
);
void
toggleRandom
();
void
toggleRepeat
();
};
#endif
modules/gui/qt4/components/playlist/standardpanel.cpp
View file @
a20ffdd4
...
...
@@ -24,6 +24,8 @@
#include "playlist_model.hpp"
#include "components/playlist/panels.hpp"
#include <QTreeView>
#include <QPushButton>
#include <QHBoxLayout>
#include <QVBoxLayout>
#include <QHeaderView>
#include "qt4.hpp"
...
...
@@ -35,7 +37,6 @@ StandardPLPanel::StandardPLPanel( QWidget *_parent, intf_thread_t *_p_intf,
PLPanel
(
_parent
,
_p_intf
)
{
model
=
new
PLModel
(
p_playlist
,
p_root
,
-
1
,
this
);
model
->
Rebuild
();
view
=
new
QTreeView
(
0
);
view
->
setModel
(
model
);
view
->
header
()
->
resizeSection
(
0
,
300
);
...
...
@@ -47,24 +48,66 @@ StandardPLPanel::StandardPLPanel( QWidget *_parent, intf_thread_t *_p_intf,
SIGNAL
(
dataChanged
(
const
QModelIndex
&
,
const
QModelIndex
&
)
),
this
,
SLOT
(
handleExpansion
(
const
QModelIndex
&
)
)
);
model
->
Rebuild
();
QVBoxLayout
*
layout
=
new
QVBoxLayout
();
layout
->
setSpacing
(
0
);
layout
->
setMargin
(
0
);
QHBoxLayout
*
buttons
=
new
QHBoxLayout
();
repeatButton
=
new
QPushButton
(
this
);
buttons
->
addWidget
(
repeatButton
);
randomButton
=
new
QPushButton
(
this
);
buttons
->
addWidget
(
randomButton
);
if
(
model
->
hasRandom
()
)
randomButton
->
setText
(
qtr
(
"Random"
)
);
else
randomButton
->
setText
(
qtr
(
"No random"
)
);
if
(
model
->
hasRepeat
()
)
repeatButton
->
setText
(
qtr
(
"Repeat One"
)
);
else
if
(
model
->
hasLoop
()
)
repeatButton
->
setText
(
qtr
(
"Repeat All"
)
);
else
repeatButton
->
setText
(
qtr
(
"No Repeat"
)
);
connect
(
repeatButton
,
SIGNAL
(
clicked
()
),
this
,
SLOT
(
toggleRepeat
()
));
connect
(
randomButton
,
SIGNAL
(
clicked
()
),
this
,
SLOT
(
toggleRandom
()
));
layout
->
addWidget
(
view
);
layout
->
addLayout
(
buttons
);
setLayout
(
layout
);
}
void
StandardPLPanel
::
toggleRepeat
()
{
if
(
model
->
hasRepeat
()
)
{
model
->
setRepeat
(
false
);
model
->
setLoop
(
true
);
repeatButton
->
setText
(
qtr
(
"Repeat All"
)
);
}
else
if
(
model
->
hasLoop
()
)
{
model
->
setRepeat
(
false
)
;
model
->
setLoop
(
false
);
repeatButton
->
setText
(
qtr
(
"No Repeat"
)
);
}
else
{
model
->
setRepeat
(
true
);
repeatButton
->
setText
(
qtr
(
"Repeat One"
)
);
}
}
void
StandardPLPanel
::
toggleRandom
()
{
bool
prev
=
model
->
hasRandom
();
model
->
setRandom
(
!
prev
);
randomButton
->
setText
(
prev
?
qtr
(
"No Random"
)
:
qtr
(
"Random"
)
);
}
void
StandardPLPanel
::
handleExpansion
(
const
QModelIndex
&
index
)
{
fprintf
(
stderr
,
"Checking expansion
\n
"
);
QModelIndex
parent
;
if
(
model
->
isCurrent
(
index
)
)
{
fprintf
(
stderr
,
"It is the current one
\n
"
)
;
parent
=
index
;
while
(
parent
.
isValid
()
)
{
fprintf
(
stderr
,
"Expanding %s
\n
"
,
(
model
->
data
(
parent
,
Qt
::
DisplayRole
)).
toString
().
toUtf8
().
data
()
);
view
->
setExpanded
(
parent
,
true
);
parent
=
model
->
parent
(
parent
);
}
...
...
modules/gui/qt4/dialogs/playlist.cpp
View file @
a20ffdd4
...
...
@@ -27,25 +27,30 @@
#include "components/playlist/panels.hpp"
#include "components/playlist/selector.hpp"
#include <QHBoxLayout>
#include "menus.hpp"
PlaylistDialog
*
PlaylistDialog
::
instance
=
NULL
;
PlaylistDialog
::
PlaylistDialog
(
intf_thread_t
*
_p_intf
)
:
QVLC
Frame
(
_p_intf
)
PlaylistDialog
::
PlaylistDialog
(
intf_thread_t
*
_p_intf
)
:
QVLC
MW
(
_p_intf
)
{
setWindowTitle
(
qtr
(
"Playlist"
)
);
selector
=
new
PLSelector
(
this
,
p_intf
,
THEPL
);
selector
->
setMaximumWidth
(
150
);
QWidget
*
main
=
new
QWidget
(
this
);
setCentralWidget
(
main
);
QVLCMenu
::
createPlMenuBar
(
menuBar
(),
p_intf
);
rightPanel
=
qobject_cast
<
PLPanel
*>
(
new
StandardPLPanel
(
this
,
p_intf
,
THEPL
,
THEPL
->
p_local_category
)
);
selector
=
new
PLSelector
(
centralWidget
(),
p_intf
,
THEPL
);
selector
->
setMaximumWidth
(
140
);
rightPanel
=
qobject_cast
<
PLPanel
*>
(
new
StandardPLPanel
(
centralWidget
(),
p_intf
,
THEPL
,
THEPL
->
p_local_category
)
);
connect
(
selector
,
SIGNAL
(
activated
(
int
)
),
rightPanel
,
SLOT
(
setRoot
(
int
)
)
);
QHBoxLayout
*
layout
=
new
QHBoxLayout
();
layout
->
addWidget
(
selector
,
0
);
layout
->
addWidget
(
rightPanel
,
10
);
centralWidget
()
->
setLayout
(
layout
);
readSettings
(
"playlist"
,
QSize
(
600
,
300
)
);
setLayout
(
layout
);
}
PlaylistDialog
::~
PlaylistDialog
()
...
...
modules/gui/qt4/dialogs/playlist.hpp
View file @
a20ffdd4
...
...
@@ -29,7 +29,7 @@
class
PLSelector
;
class
PLPanel
;
class
PlaylistDialog
:
public
QVLC
Frame
class
PlaylistDialog
:
public
QVLC
MW
{
Q_OBJECT
;
public:
...
...
modules/gui/qt4/main_interface.cpp
View file @
a20ffdd4
...
...
@@ -51,8 +51,8 @@ MainInterface::MainInterface( intf_thread_t *_p_intf ) : QVLCMW( _p_intf )
ui
.
hboxLayout
->
insertWidget
(
0
,
slider
);
ui
.
prevButton
->
setText
(
""
);
ui
.
nextButton
->
setText
(
""
);
ui
.
playButton
->
setText
(
""
);
ui
.
stopButton
->
setText
(
""
);
ui
.
playButton
->
setText
(
""
);
ui
.
stopButton
->
setText
(
""
);
ui
.
prevButton
->
setIcon
(
QIcon
(
":/pixmaps/previous.png"
)
);
ui
.
nextButton
->
setIcon
(
QIcon
(
":/pixmaps/next.png"
)
);
ui
.
playButton
->
setIcon
(
QIcon
(
":/pixmaps/play.png"
)
);
...
...
modules/gui/qt4/menus.cpp
View file @
a20ffdd4
...
...
@@ -135,6 +135,8 @@ void QVLCMenu::createPlMenuBar( QMenuBar *bar, intf_thread_t *p_intf )
SLOT
(
simpleAppendDialog
()
)
);
manageMenu
->
addSeparator
();
manageMenu
->
addMenu
(
SDMenu
(
p_intf
)
);
bar
->
addMenu
(
manageMenu
);
}
QMenu
*
QVLCMenu
::
SDMenu
(
intf_thread_t
*
p_intf
)
...
...
modules/gui/qt4/playlist_model.cpp
View file @
a20ffdd4
...
...
@@ -325,6 +325,36 @@ int PLModel::rowCount(const QModelIndex &parent) const
return
parentItem
->
childCount
();
}
/************************* General playlist status ***********************/
bool
PLModel
::
hasRandom
()
{
if
(
var_GetBool
(
p_playlist
,
"random"
)
)
return
true
;
return
false
;
}
bool
PLModel
::
hasRepeat
()
{
if
(
var_GetBool
(
p_playlist
,
"repeat"
)
)
return
true
;
return
false
;
}
bool
PLModel
::
hasLoop
()
{
if
(
var_GetBool
(
p_playlist
,
"loop"
)
)
return
true
;
return
false
;
}
void
PLModel
::
setLoop
(
bool
on
)
{
var_SetBool
(
p_playlist
,
"loop"
,
on
?
VLC_TRUE
:
VLC_FALSE
);
}
void
PLModel
::
setRepeat
(
bool
on
)
{
var_SetBool
(
p_playlist
,
"repeat"
,
on
?
VLC_TRUE
:
VLC_FALSE
);
}
void
PLModel
::
setRandom
(
bool
on
)
{
var_SetBool
(
p_playlist
,
"random"
,
on
?
VLC_TRUE
:
VLC_FALSE
);
}
/************************* Lookups *****************************/
PLItem
*
PLModel
::
FindById
(
PLItem
*
root
,
int
i_id
)
...
...
@@ -467,12 +497,22 @@ void PLModel::Rebuild()
qDeleteAll
(
rootItem
->
children
);
/* Recreate from root */
UpdateNodeChildren
(
rootItem
);
if
(
p_playlist
->
status
.
p_item
)
{
fprintf
(
stderr
,
"Playlist is playing"
);
PLItem
*
currentItem
=
FindByInput
(
rootItem
,
p_playlist
->
status
.
p_item
->
p_input
->
i_id
);
if
(
currentItem
)
{
fprintf
(
stderr
,
"Updating item
\n
"
);
UpdateTreeItem
(
p_playlist
->
status
.
p_item
,
currentItem
,
true
,
false
);
}
}
PL_UNLOCK
;
/* And signal the view */
emit
layoutChanged
();
/// \todo Force current item to be updated
addCallbacks
();
}
...
...
modules/gui/qt4/playlist_model.hpp
View file @
a20ffdd4
...
...
@@ -118,6 +118,7 @@ public:
int
i_items_to_append
;
void
Rebuild
();
void
rebuildRoot
(
playlist_item_t
*
);
bool
hasRandom
();
bool
hasLoop
();
bool
hasRepeat
();
private:
void
addCallbacks
();
void
delCallbacks
();
...
...
@@ -148,6 +149,9 @@ private:
int
i_cached_input_id
;
public
slots
:
void
activateItem
(
const
QModelIndex
&
index
);
void
setRandom
(
bool
);
void
setLoop
(
bool
);
void
setRepeat
(
bool
);
friend
class
PLItem
;
};
...
...
modules/gui/qt4/util/qvlcframe.hpp
View file @
a20ffdd4
...
...
@@ -130,6 +130,11 @@ public:
QVLCFrame
::
fixStyle
(
this
);
}
virtual
~
QVLCMW
()
{};
void
toggleVisible
()
{
if
(
isVisible
()
)
hide
();
else
show
();
}
protected:
intf_thread_t
*
p_intf
;
QSize
mainSize
;
...
...
@@ -138,10 +143,8 @@ protected:
{
QSettings
settings
(
"VideoLAN"
,
"VLC"
);
settings
.
beginGroup
(
name
);
mainSize
=
settings
.
value
(
"size"
,
defSize
).
toSize
();
QPoint
npos
=
settings
.
value
(
"pos"
,
QPoint
(
0
,
0
)
).
toPoint
();
if
(
npos
.
x
()
>
0
)
move
(
npos
);
resize
(
settings
.
value
(
"size"
,
defSize
).
toSize
()
);
move
(
settings
.
value
(
"pos"
,
QPoint
(
0
,
0
)
).
toPoint
()
);
settings
.
endGroup
();
}
void
readSettings
(
QString
name
)
...
...
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