Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-1.1
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-1.1
Commits
a94647f0
Commit
a94647f0
authored
Dec 09, 2006
by
Clément Stenac
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Misc cleanups in Qt4. (Closes:#736)
Fix m3u export
parent
ff5e7fa7
Changes
8
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
302 additions
and
196 deletions
+302
-196
NEWS
NEWS
+5
-3
include/vlc_intf_strings.h
include/vlc_intf_strings.h
+35
-1
modules/gui/qt4/components/playlist/standardpanel.cpp
modules/gui/qt4/components/playlist/standardpanel.cpp
+17
-14
modules/gui/qt4/dialogs/messages.cpp
modules/gui/qt4/dialogs/messages.cpp
+1
-1
modules/gui/qt4/dialogs_provider.cpp
modules/gui/qt4/dialogs_provider.cpp
+204
-155
modules/gui/qt4/dialogs_provider.hpp
modules/gui/qt4/dialogs_provider.hpp
+5
-3
modules/gui/qt4/menus.cpp
modules/gui/qt4/menus.cpp
+9
-9
modules/misc/playlist/m3u.c
modules/misc/playlist/m3u.c
+26
-10
No files found.
NEWS
View file @
a94647f0
...
@@ -11,9 +11,11 @@ Important notes:
...
@@ -11,9 +11,11 @@ Important notes:
XXX: DETAILED INSTRUCTIONS HERE :XXX
XXX: DETAILED INSTRUCTIONS HERE :XXX
* This version of VLC contains a new interface for Windows and Linux. This
* This version of VLC contains a new interface for Windows and Linux. This
interface lacks a few features that used to be present in vlc 0.8.6:
interface lacks a few features that used to be present in vlc 0.8.6:
"Streaming wizard" and "VLM control". These features will be replaced
-
"Streaming wizard" and "VLM control". These features will be replaced
by a better alternative in the next version. If you absolutely need these
by a better alternative in the next version. If you absolutely need these
features, we advise you to keep vlc 0.8.6
features, we advise you to keep vlc 0.8.6
- Similarly, "Bookmarks" will be reintroduced in an improved version at a
later point
Changes:
Changes:
--------
--------
...
...
include/vlc_intf_strings.h
View file @
a94647f0
...
@@ -30,10 +30,20 @@
...
@@ -30,10 +30,20 @@
/*************** Open dialogs **************/
/*************** Open dialogs **************/
#define I_POP_SEL_FILES N_("Select one or more files to open")
#define I_OP_OPF N_("Quick &Open File...")
#define I_OP_ADVOP N_("&Advanced Open...")
#define I_OP_OPDIR N_("Open &Directory...")
#define I_OP_SEL_FILES N_("Select one or more files to open")
/******************* Menus *****************/
/******************* Menus *****************/
#define I_MENU_INFO N_("Information...")
#define I_MENU_MSG N_("Messages...")
#define I_MENU_EXT N_("Extended settings...")
#define I_MENU_ABOUT N_("About VLC media player...")
/* Playlist popup */
/* Playlist popup */
#define I_POP_PLAY N_("Play")
#define I_POP_PLAY N_("Play")
#define I_POP_PREPARSE N_("Fetch information")
#define I_POP_PREPARSE N_("Fetch information")
...
@@ -44,6 +54,30 @@
...
@@ -44,6 +54,30 @@
#define I_POP_STREAM N_("Stream...")
#define I_POP_STREAM N_("Stream...")
#define I_POP_SAVE N_("Save...")
#define I_POP_SAVE N_("Save...")
/*************** Playlist *************/
#define I_PL_LOOP N_("Repeat all")
#define I_PL_REPEAT N_("Repeat one")
#define I_PL_NOREPEAT N_("No repeat")
#define I_PL_RANDOM N_("Random")
#define I_PL_NORANDOM N_("No random")
#define I_PL_ADDPL N_("Add to playlist")
#define I_PL_ADDML N_("Add to media library")
#define I_PL_ADDF N_("Add file...")
#define I_PL_ADVADD N_("Advanced open...")
#define I_PL_ADDDIR N_("Add directory...")
#define I_PL_SAVE N_("Save playlist to file...")
#define I_PL_LOAD N_("Load playlist file...")
#define I_PL_SEARCH N_("Search")
#define I_PL_FILTER N_("Search filter")
#define I_PL_SD N_("Additional sources")
/*************** Preferences *************/
/*************** Preferences *************/
#define I_HIDDEN_ADV N_( "Some options are available but hidden. "\
#define I_HIDDEN_ADV N_( "Some options are available but hidden. "\
...
...
modules/gui/qt4/components/playlist/standardpanel.cpp
View file @
a94647f0
...
@@ -27,6 +27,8 @@
...
@@ -27,6 +27,8 @@
#include "components/playlist/panels.hpp"
#include "components/playlist/panels.hpp"
#include "util/customwidgets.hpp"
#include "util/customwidgets.hpp"
#include <vlc_intf_strings.h>
#include <QTreeView>
#include <QTreeView>
#include <QPushButton>
#include <QPushButton>
#include <QHBoxLayout>
#include <QHBoxLayout>
...
@@ -53,7 +55,7 @@ StandardPLPanel::StandardPLPanel( BasePlaylistWidget *_parent,
...
@@ -53,7 +55,7 @@ StandardPLPanel::StandardPLPanel( BasePlaylistWidget *_parent,
view
->
setIconSize
(
QSize
(
20
,
20
)
);
view
->
setIconSize
(
QSize
(
20
,
20
)
);
view
->
setAlternatingRowColors
(
true
);
view
->
setAlternatingRowColors
(
true
);
view
->
header
()
->
resizeSection
(
0
,
230
);
view
->
header
()
->
resizeSection
(
0
,
230
);
view
->
header
()
->
resizeSection
(
2
,
6
0
);
view
->
header
()
->
resizeSection
(
1
,
17
0
);
view
->
header
()
->
setSortIndicatorShown
(
true
);
view
->
header
()
->
setSortIndicatorShown
(
true
);
view
->
header
()
->
setClickable
(
true
);
view
->
header
()
->
setClickable
(
true
);
...
@@ -95,9 +97,9 @@ StandardPLPanel::StandardPLPanel( BasePlaylistWidget *_parent,
...
@@ -95,9 +97,9 @@ StandardPLPanel::StandardPLPanel( BasePlaylistWidget *_parent,
QSpacerItem
*
spacer
=
new
QSpacerItem
(
10
,
20
);
buttons
->
addItem
(
spacer
);
QSpacerItem
*
spacer
=
new
QSpacerItem
(
10
,
20
);
buttons
->
addItem
(
spacer
);
QLabel
*
filter
=
new
QLabel
(
q
fu
(
"&Search:"
)
+
" "
);
QLabel
*
filter
=
new
QLabel
(
q
tr
(
I_PL_SEARCH
)
+
" "
);
buttons
->
addWidget
(
filter
);
buttons
->
addWidget
(
filter
);
searchLine
=
new
ClickLineEdit
(
q
fu
(
"Playlist filter"
),
0
);
searchLine
=
new
ClickLineEdit
(
q
tr
(
I_PL_FILTER
),
0
);
CONNECT
(
searchLine
,
textChanged
(
QString
),
this
,
search
(
QString
));
CONNECT
(
searchLine
,
textChanged
(
QString
),
this
,
search
(
QString
));
buttons
->
addWidget
(
searchLine
);
filter
->
setBuddy
(
searchLine
);
buttons
->
addWidget
(
searchLine
);
filter
->
setBuddy
(
searchLine
);
...
@@ -117,17 +119,17 @@ void StandardPLPanel::toggleRepeat()
...
@@ -117,17 +119,17 @@ void StandardPLPanel::toggleRepeat()
if
(
model
->
hasRepeat
()
)
if
(
model
->
hasRepeat
()
)
{
{
model
->
setRepeat
(
false
);
model
->
setLoop
(
true
);
model
->
setRepeat
(
false
);
model
->
setLoop
(
true
);
repeatButton
->
setText
(
qtr
(
"Repeat All"
)
);
repeatButton
->
setText
(
qtr
(
I_PL_LOOP
)
);
}
}
else
if
(
model
->
hasLoop
()
)
else
if
(
model
->
hasLoop
()
)
{
{
model
->
setRepeat
(
false
)
;
model
->
setLoop
(
false
);
model
->
setRepeat
(
false
)
;
model
->
setLoop
(
false
);
repeatButton
->
setText
(
qtr
(
"No Repeat"
)
);
repeatButton
->
setText
(
qtr
(
I_PL_NOREPEAT
)
);
}
}
else
else
{
{
model
->
setRepeat
(
true
);
model
->
setRepeat
(
true
);
repeatButton
->
setText
(
qtr
(
"Repeat One"
)
);
repeatButton
->
setText
(
qtr
(
I_PL_REPEAT
)
);
}
}
}
}
...
@@ -135,7 +137,7 @@ void StandardPLPanel::toggleRandom()
...
@@ -135,7 +137,7 @@ void StandardPLPanel::toggleRandom()
{
{
bool
prev
=
model
->
hasRandom
();
bool
prev
=
model
->
hasRandom
();
model
->
setRandom
(
!
prev
);
model
->
setRandom
(
!
prev
);
randomButton
->
setText
(
prev
?
qtr
(
"No Random"
)
:
qtr
(
"Random"
)
);
randomButton
->
setText
(
prev
?
qtr
(
I_PL_NORANDOM
)
:
qtr
(
I_PL_RANDOM
)
);
}
}
void
StandardPLPanel
::
handleExpansion
(
const
QModelIndex
&
index
)
void
StandardPLPanel
::
handleExpansion
(
const
QModelIndex
&
index
)
...
@@ -159,13 +161,13 @@ void StandardPLPanel::setCurrentRootId( int _new )
...
@@ -159,13 +161,13 @@ void StandardPLPanel::setCurrentRootId( int _new )
currentRootId
==
THEPL
->
p_local_onelevel
->
i_id
)
currentRootId
==
THEPL
->
p_local_onelevel
->
i_id
)
{
{
addButton
->
setEnabled
(
true
);
addButton
->
setEnabled
(
true
);
addButton
->
setToolTip
(
qtr
(
"Add to playlist"
)
);
addButton
->
setToolTip
(
qtr
(
I_PL_ADDPL
)
);
}
}
else
if
(
currentRootId
==
THEPL
->
p_ml_category
->
i_id
||
else
if
(
currentRootId
==
THEPL
->
p_ml_category
->
i_id
||
currentRootId
==
THEPL
->
p_ml_onelevel
->
i_id
)
currentRootId
==
THEPL
->
p_ml_onelevel
->
i_id
)
{
{
addButton
->
setEnabled
(
true
);
addButton
->
setEnabled
(
true
);
addButton
->
setToolTip
(
qtr
(
"Add to media library"
)
);
addButton
->
setToolTip
(
qtr
(
I_PL_ADDML
)
);
}
}
else
else
addButton
->
setEnabled
(
false
);
addButton
->
setEnabled
(
false
);
...
@@ -177,15 +179,16 @@ void StandardPLPanel::add()
...
@@ -177,15 +179,16 @@ void StandardPLPanel::add()
if
(
currentRootId
==
THEPL
->
p_local_category
->
i_id
||
if
(
currentRootId
==
THEPL
->
p_local_category
->
i_id
||
currentRootId
==
THEPL
->
p_local_onelevel
->
i_id
)
currentRootId
==
THEPL
->
p_local_onelevel
->
i_id
)
{
{
popup
->
addAction
(
qtr
(
"Add file"
),
THEDP
,
SLOT
(
simplePLAppendDialog
()
)
);
popup
->
addAction
(
qtr
(
I_PL_ADDF
),
THEDP
,
SLOT
(
simplePLAppendDialog
()));
popup
->
addAction
(
qtr
(
"Advanced add"
),
THEDP
,
SLOT
(
PLAppendDialog
()
)
);
popup
->
addAction
(
qtr
(
I_PL_ADVADD
),
THEDP
,
SLOT
(
PLAppendDialog
())
);
popup
->
addAction
(
qtr
(
I_PL_ADDDIR
),
THEDP
,
SLOT
(
PLAppendDir
())
);
}
}
else
if
(
currentRootId
==
THEPL
->
p_ml_category
->
i_id
||
else
if
(
currentRootId
==
THEPL
->
p_ml_category
->
i_id
||
currentRootId
==
THEPL
->
p_ml_onelevel
->
i_id
)
currentRootId
==
THEPL
->
p_ml_onelevel
->
i_id
)
{
{
popup
->
addAction
(
qtr
(
"Add file"
),
THEDP
,
SLOT
(
simpleMLAppendDialog
()
)
);
popup
->
addAction
(
qtr
(
I_PL_ADDF
),
THEDP
,
SLOT
(
simpleMLAppendDialog
())
);
popup
->
addAction
(
qtr
(
"Advanced add"
),
THEDP
,
SLOT
(
MLAppendDialog
()
)
);
popup
->
addAction
(
qtr
(
I_PL_ADVADD
),
THEDP
,
SLOT
(
MLAppendDialog
()
)
);
popup
->
addAction
(
qtr
(
"Directory"
),
THEDP
,
SLOT
(
openMLDirectory
()
)
);
popup
->
addAction
(
qtr
(
I_PL_ADDDIR
),
THEDP
,
SLOT
(
MLAppendDir
()
)
);
}
}
popup
->
popup
(
QCursor
::
pos
()
);
popup
->
popup
(
QCursor
::
pos
()
);
}
}
...
...
modules/gui/qt4/dialogs/messages.cpp
View file @
a94647f0
...
@@ -156,7 +156,7 @@ bool MessagesDialog::save()
...
@@ -156,7 +156,7 @@ bool MessagesDialog::save()
p_intf
->
p_libvlc
->
psz_homedir
,
p_intf
->
p_libvlc
->
psz_homedir
,
"Texts / Logs (*.log *.txt);; All (*.*) "
);
"Texts / Logs (*.log *.txt);; All (*.*) "
);
if
(
saveLogFileName
!=
NULL
)
if
(
!
saveLogFileName
.
isNull
()
)
{
{
QFile
file
(
saveLogFileName
);
QFile
file
(
saveLogFileName
);
if
(
!
file
.
open
(
QFile
::
WriteOnly
|
QFile
::
Text
))
{
if
(
!
file
.
open
(
QFile
::
WriteOnly
|
QFile
::
Text
))
{
...
...
modules/gui/qt4/dialogs_provider.cpp
View file @
a94647f0
...
@@ -66,6 +66,12 @@ DialogsProvider::~DialogsProvider()
...
@@ -66,6 +66,12 @@ DialogsProvider::~DialogsProvider()
MediaInfoDialog
::
killInstance
();
MediaInfoDialog
::
killInstance
();
}
}
void
DialogsProvider
::
quit
()
{
p_intf
->
b_die
=
VLC_TRUE
;
QApplication
::
quit
();
}
void
DialogsProvider
::
customEvent
(
QEvent
*
event
)
void
DialogsProvider
::
customEvent
(
QEvent
*
event
)
{
{
if
(
event
->
type
()
==
DialogEvent_Type
)
if
(
event
->
type
()
==
DialogEvent_Type
)
...
@@ -90,7 +96,7 @@ void DialogsProvider::customEvent( QEvent *event )
...
@@ -90,7 +96,7 @@ void DialogsProvider::customEvent( QEvent *event )
case
INTF_DIALOG_MISCPOPUPMENU
:
case
INTF_DIALOG_MISCPOPUPMENU
:
popupMenu
(
de
->
i_dialog
);
break
;
popupMenu
(
de
->
i_dialog
);
break
;
case
INTF_DIALOG_FILEINFO
:
case
INTF_DIALOG_FILEINFO
:
M
ediaInfoDialog
();
break
;
m
ediaInfoDialog
();
break
;
case
INTF_DIALOG_INTERACTION
:
case
INTF_DIALOG_INTERACTION
:
doInteraction
(
de
->
p_arg
);
break
;
doInteraction
(
de
->
p_arg
);
break
;
case
INTF_DIALOG_VLM
:
case
INTF_DIALOG_VLM
:
...
@@ -103,11 +109,51 @@ void DialogsProvider::customEvent( QEvent *event )
...
@@ -103,11 +109,51 @@ void DialogsProvider::customEvent( QEvent *event )
}
}
}
}
/****************************************************************************
* Individual simple dialogs
****************************************************************************/
void
DialogsProvider
::
playlistDialog
()
void
DialogsProvider
::
playlistDialog
()
{
{
PlaylistDialog
::
getInstance
(
p_intf
)
->
toggleVisible
();
PlaylistDialog
::
getInstance
(
p_intf
)
->
toggleVisible
();
}
}
void
DialogsProvider
::
prefsDialog
()
{
PrefsDialog
::
getInstance
(
p_intf
)
->
toggleVisible
();
}
void
DialogsProvider
::
extendedDialog
()
{
ExtendedDialog
::
getInstance
(
p_intf
)
->
toggleVisible
();
}
void
DialogsProvider
::
messagesDialog
()
{
MessagesDialog
::
getInstance
(
p_intf
)
->
toggleVisible
();
}
void
DialogsProvider
::
helpDialog
()
{
HelpDialog
::
getInstance
(
p_intf
)
->
toggleVisible
();
}
void
DialogsProvider
::
aboutDialog
()
{
AboutDialog
::
getInstance
(
p_intf
)
->
toggleVisible
();
}
void
DialogsProvider
::
mediaInfoDialog
()
{
MediaInfoDialog
::
getInstance
(
p_intf
)
->
toggleVisible
();
}
void
DialogsProvider
::
bookmarksDialog
()
{
}
/****************************************************************************
* All the open/add stuff
****************************************************************************/
void
DialogsProvider
::
openDialog
()
void
DialogsProvider
::
openDialog
()
{
{
openDialog
(
0
);
openDialog
(
0
);
...
@@ -123,49 +169,144 @@ void DialogsProvider::openDialog( int i_tab )
...
@@ -123,49 +169,144 @@ void DialogsProvider::openDialog( int i_tab )
OpenDialog
::
getInstance
(
p_intf
->
p_sys
->
p_mi
,
p_intf
)
->
showTab
(
i_tab
);
OpenDialog
::
getInstance
(
p_intf
->
p_sys
->
p_mi
,
p_intf
)
->
showTab
(
i_tab
);
}
}
void
DialogsProvider
::
doInteraction
(
intf_dialog_args_t
*
p_arg
)
/**** Simple open ****/
QStringList
DialogsProvider
::
showSimpleOpen
()
{
{
InteractionDialog
*
qdialog
;
QString
FileTypes
;
interaction_dialog_t
*
p_dialog
=
p_arg
->
p_dialog
;
FileTypes
=
_
(
"Media Files"
);
switch
(
p_dialog
->
i_action
)
FileTypes
+=
" ( "
;
FileTypes
+=
EXTENSIONS_MEDIA
;
FileTypes
+=
");;"
;
FileTypes
+=
_
(
"Video Files"
);
FileTypes
+=
" ( "
;
FileTypes
+=
EXTENSIONS_VIDEO
;
FileTypes
+=
");;"
;
FileTypes
+=
_
(
"Sound Files"
);
FileTypes
+=
" ( "
;
FileTypes
+=
EXTENSIONS_AUDIO
;
FileTypes
+=
");;"
;
FileTypes
+=
_
(
"PlayList Files"
);
FileTypes
+=
" ( "
;
FileTypes
+=
EXTENSIONS_PLAYLIST
;
FileTypes
+=
");;"
;
FileTypes
+=
_
(
"All Files"
);
FileTypes
+=
" (*.*)"
;
FileTypes
.
replace
(
QString
(
";*"
),
QString
(
" *"
));
return
QFileDialog
::
getOpenFileNames
(
NULL
,
qfu
(
I_OP_SEL_FILES
),
p_intf
->
p_libvlc
->
psz_homedir
,
FileTypes
);
}
void
DialogsProvider
::
addFromSimple
(
bool
pl
,
bool
go
)
{
QStringList
files
=
DialogsProvider
::
showSimpleOpen
();
int
i
=
0
;
foreach
(
QString
file
,
files
)
{
{
case
INTERACT_NEW
:
const
char
*
psz_utf8
=
qtu
(
file
);
qdialog
=
new
InteractionDialog
(
p_intf
,
p_dialog
);
playlist_Add
(
THEPL
,
psz_utf8
,
NULL
,
p_dialog
->
p_private
=
(
void
*
)
qdialog
;
go
?
(
PLAYLIST_APPEND
|
(
i
?
0
:
PLAYLIST_GO
)
|
if
(
!
(
p_dialog
->
i_status
==
ANSWERED_DIALOG
)
)
(
i
?
PLAYLIST_PREPARSE
:
0
)
)
qdialog
->
show
();
:
(
PLAYLIST_APPEND
|
PLAYLIST_PREPARSE
),
break
;
PLAYLIST_END
,
case
INTERACT_UPDATE
:
pl
?
VLC_TRUE
:
VLC_FALSE
);
qdialog
=
(
InteractionDialog
*
)(
p_dialog
->
p_private
);
i
++
;
if
(
qdialog
)
qdialog
->
update
();
break
;
case
INTERACT_HIDE
:
qdialog
=
(
InteractionDialog
*
)(
p_dialog
->
p_private
);
if
(
qdialog
)
qdialog
->
hide
();
p_dialog
->
i_status
=
HIDDEN_DIALOG
;
break
;
case
INTERACT_DESTROY
:
qdialog
=
(
InteractionDialog
*
)(
p_dialog
->
p_private
);
if
(
!
p_dialog
->
i_flags
&
DIALOG_NONBLOCKING_ERROR
)
delete
qdialog
;
p_dialog
->
i_status
=
DESTROYED_DIALOG
;
break
;
}
}
}
}
void
DialogsProvider
::
quit
()
void
DialogsProvider
::
simplePLAppendDialog
()
{
{
p_intf
->
b_die
=
VLC_TRUE
;
addFromSimple
(
true
,
false
);
QApplication
::
quit
();
}
}
void
DialogsProvider
::
MediaInfo
Dialog
()
void
DialogsProvider
::
simpleMLAppend
Dialog
()
{
{
MediaInfoDialog
::
getInstance
(
p_intf
)
->
toggleVisible
();
addFromSimple
(
false
,
false
);
}
void
DialogsProvider
::
simpleOpenDialog
()
{
addFromSimple
(
true
,
true
);
}
void
DialogsProvider
::
openPlaylist
()
{
QStringList
files
=
showSimpleOpen
();
foreach
(
QString
file
,
files
)
{
playlist_Import
(
THEPL
,
qtu
(
file
)
);
}
}
void
DialogsProvider
::
savePlaylist
()
{
QFileDialog
*
qfd
=
new
QFileDialog
(
NULL
,
qtr
(
"Choose a filename to save playlist"
),
p_intf
->
p_libvlc
->
psz_homedir
,
qfu
(
"XSPF playlist (*.xspf);; "
)
+
qfu
(
"M3U playlist (*.m3u);; Any (*.*) "
)
);
qfd
->
setFileMode
(
QFileDialog
::
AnyFile
);
qfd
->
setAcceptMode
(
QFileDialog
::
AcceptSave
);
qfd
->
setConfirmOverwrite
(
true
);
if
(
qfd
->
exec
()
==
QDialog
::
Accepted
)
{
if
(
qfd
->
selectedFiles
().
count
()
>
0
)
{
char
*
psz_module
,
*
psz_m3u
=
"export-m3u"
,
*
psz_xspf
=
"export-xspf"
;
QString
file
=
qfd
->
selectedFiles
().
first
();
QString
filter
=
qfd
->
selectedFilter
();
if
(
file
.
contains
(
".xsp"
)
||
(
filter
.
contains
(
".xspf"
)
&&
!
file
.
contains
(
".m3u"
)
)
)
{
psz_module
=
psz_xspf
;
if
(
!
file
.
contains
(
".xsp"
)
)
file
.
append
(
".xspf"
);
}
else
{
psz_module
=
psz_m3u
;
if
(
!
file
.
contains
(
".m3u"
)
)
file
.
append
(
".m3u"
);
}
playlist_Export
(
THEPL
,
qtu
(
file
),
THEPL
->
p_playlist_category
,
psz_module
);
}
}
delete
qfd
;
}
}
static
void
openDirectory
(
intf_thread_t
*
p_intf
,
bool
pl
,
bool
go
)
{
QString
dir
=
QFileDialog
::
getExistingDirectory
(
0
,
_
(
"Open directory"
)
);
input_item_t
*
p_input
=
input_ItemNewExt
(
THEPL
,
qtu
(
dir
),
NULL
,
0
,
NULL
,
-
1
);
playlist_AddInput
(
THEPL
,
p_input
,
go
?
(
PLAYLIST_APPEND
|
PLAYLIST_GO
)
:
PLAYLIST_APPEND
,
PLAYLIST_END
,
pl
);
input_Read
(
THEPL
,
p_input
,
VLC_FALSE
);
}
void
DialogsProvider
::
PLAppendDir
()
{
openDirectory
(
p_intf
,
true
,
false
);
}
void
DialogsProvider
::
MLAppendDir
()
{
openDirectory
(
p_intf
,
false
,
false
);
}
/****************************************************************************
* Sout emulation
****************************************************************************/
void
DialogsProvider
::
streamingDialog
()
void
DialogsProvider
::
streamingDialog
()
{
{
OpenDialog
*
o
=
new
OpenDialog
(
p_intf
->
p_sys
->
p_mi
,
p_intf
,
true
);
OpenDialog
*
o
=
new
OpenDialog
(
p_intf
->
p_sys
->
p_mi
,
p_intf
,
true
);
...
@@ -189,29 +330,9 @@ void DialogsProvider::streamingDialog()
...
@@ -189,29 +330,9 @@ void DialogsProvider::streamingDialog()
delete
o
;
delete
o
;
}
}
void
DialogsProvider
::
prefsDialog
()
/****************************************************************************
{
* Menus / Interaction
PrefsDialog
::
getInstance
(
p_intf
)
->
toggleVisible
();
****************************************************************************/
}
void
DialogsProvider
::
extendedDialog
()
{
ExtendedDialog
::
getInstance
(
p_intf
)
->
toggleVisible
();
}
void
DialogsProvider
::
messagesDialog
()
{
MessagesDialog
::
getInstance
(
p_intf
)
->
toggleVisible
();
}
void
DialogsProvider
::
helpDialog
()
{
HelpDialog
::
getInstance
(
p_intf
)
->
toggleVisible
();
}
void
DialogsProvider
::
aboutDialog
()
{
AboutDialog
::
getInstance
(
p_intf
)
->
toggleVisible
();
}
void
DialogsProvider
::
menuAction
(
QObject
*
data
)
void
DialogsProvider
::
menuAction
(
QObject
*
data
)
{
{
...
@@ -234,115 +355,43 @@ void DialogsProvider::SDMenuAction( QString data )
...
@@ -234,115 +355,43 @@ void DialogsProvider::SDMenuAction( QString data )
}
}
void
DialogsProvider
::
simplePLAppendDialog
()
void
DialogsProvider
::
doInteraction
(
intf_dialog_args_t
*
p_arg
)
{
QStringList
files
=
showSimpleOpen
();
QString
file
;
foreach
(
file
,
files
)
{
const
char
*
psz_utf8
=
qtu
(
file
);
playlist_Add
(
THEPL
,
psz_utf8
,
NULL
,
PLAYLIST_APPEND
|
PLAYLIST_PREPARSE
,
PLAYLIST_END
,
VLC_TRUE
);
}
}
void
DialogsProvider
::
simpleMLAppendDialog
()
{
QStringList
files
=
showSimpleOpen
();
QString
file
;
foreach
(
file
,
files
)
{
const
char
*
psz_utf8
=
qtu
(
file
);
playlist_Add
(
THEPL
,
psz_utf8
,
psz_utf8
,
PLAYLIST_APPEND
|
PLAYLIST_PREPARSE
,
PLAYLIST_END
,
VLC_TRUE
);
}
}
void
DialogsProvider
::
simpleOpenDialog
()
{
QStringList
files
=
showSimpleOpen
();
QString
file
;
for
(
size_t
i
=
0
;
i
<
files
.
size
();
i
++
)
{
const
char
*
psz_utf8
=
qtu
(
files
[
i
]
);
/* Play the first one, parse and enqueue the other ones */
playlist_Add
(
THEPL
,
psz_utf8
,
NULL
,
PLAYLIST_APPEND
|
(
i
?
0
:
PLAYLIST_GO
)
|
(
i
?
PLAYLIST_PREPARSE
:
0
),
PLAYLIST_END
,
VLC_TRUE
);
}
}
void
DialogsProvider
::
openPlaylist
()
{
{
QStringList
files
=
showSimpleOpen
()
;
InteractionDialog
*
qdialog
;
QString
file
;
interaction_dialog_t
*
p_dialog
=
p_arg
->
p_dialog
;
for
(
size_t
i
=
0
;
i
<
files
.
size
();
i
++
)
switch
(
p_dialog
->
i_action
)
{
{
const
char
*
psz_utf8
=
qtu
(
files
[
i
]
);
case
INTERACT_NEW
:
playlist_Import
(
THEPL
,
psz_utf8
);
qdialog
=
new
InteractionDialog
(
p_intf
,
p_dialog
);
p_dialog
->
p_private
=
(
void
*
)
qdialog
;
if
(
!
(
p_dialog
->
i_status
==
ANSWERED_DIALOG
)
)
qdialog
->
show
();
break
;
case
INTERACT_UPDATE
:
qdialog
=
(
InteractionDialog
*
)(
p_dialog
->
p_private
);
if
(
qdialog
)
qdialog
->
update
();
break
;
case
INTERACT_HIDE
:
qdialog
=
(
InteractionDialog
*
)(
p_dialog
->
p_private
);
if
(
qdialog
)
qdialog
->
hide
();
p_dialog
->
i_status
=
HIDDEN_DIALOG
;
break
;
case
INTERACT_DESTROY
:
qdialog
=
(
InteractionDialog
*
)(
p_dialog
->
p_private
);
if
(
!
p_dialog
->
i_flags
&
DIALOG_NONBLOCKING_ERROR
)
delete
qdialog
;
p_dialog
->
i_status
=
DESTROYED_DIALOG
;
break
;
}
}
}
}
void
DialogsProvider
::
openDirectory
()
{
QString
dir
=
QFileDialog
::
getExistingDirectory
(
0
,
_
(
"Open directory"
)
);
const
char
*
psz_utf8
=
qtu
(
dir
);
input_item_t
*
p_input
=
input_ItemNewExt
(
THEPL
,
psz_utf8
,
NULL
,
0
,
NULL
,
-
1
);
playlist_AddInput
(
THEPL
,
p_input
,
PLAYLIST_APPEND
,
PLAYLIST_END
,
VLC_TRUE
);
input_Read
(
THEPL
,
p_input
,
VLC_FALSE
);
}
void
DialogsProvider
::
openMLDirectory
()
{
QString
dir
=
QFileDialog
::
getExistingDirectory
(
0
,
_
(
"Open directory"
)
);
const
char
*
psz_utf8
=
qtu
(
dir
);
input_item_t
*
p_input
=
input_ItemNewExt
(
THEPL
,
psz_utf8
,
NULL
,
0
,
NULL
,
-
1
);
playlist_AddInput
(
THEPL
,
p_input
,
PLAYLIST_APPEND
,
PLAYLIST_END
,
VLC_FALSE
);
input_Read
(
THEPL
,
p_input
,
VLC_FALSE
);
}
QStringList
DialogsProvider
::
showSimpleOpen
()
{
QString
FileTypes
;
FileTypes
=
_
(
"Media Files"
);
FileTypes
+=
" ( "
;
FileTypes
+=
EXTENSIONS_MEDIA
;
FileTypes
+=
");;"
;
FileTypes
+=
_
(
"Video Files"
);
FileTypes
+=
" ( "
;
FileTypes
+=
EXTENSIONS_VIDEO
;
FileTypes
+=
");;"
;
FileTypes
+=
_
(
"Sound Files"
);
FileTypes
+=
" ( "
;
FileTypes
+=
EXTENSIONS_AUDIO
;
FileTypes
+=
");;"
;
FileTypes
+=
_
(
"PlayList Files"
);
FileTypes
+=
" ( "
;
FileTypes
+=
EXTENSIONS_PLAYLIST
;
FileTypes
+=
");;"
;
FileTypes
+=
_
(
"All Files"
);
FileTypes
+=
" (*.*)"
;
FileTypes
.
replace
(
QString
(
";*"
),
QString
(
" *"
));
return
QFileDialog
::
getOpenFileNames
(
NULL
,
qfu
(
I_POP_SEL_FILES
),
p_intf
->
p_libvlc
->
psz_homedir
,
FileTypes
);
}
void
DialogsProvider
::
switchToSkins
()
void
DialogsProvider
::
switchToSkins
()
{
{
var_SetString
(
p_intf
,
"intf-switch"
,
"skins2"
);
var_SetString
(
p_intf
,
"intf-switch"
,
"skins2"
);
}
}
void
DialogsProvider
::
bookmarksDialog
()
{
}
void
DialogsProvider
::
popupMenu
(
int
i_dialog
)
void
DialogsProvider
::
popupMenu
(
int
i_dialog
)
{
{
}
}
modules/gui/qt4/dialogs_provider.hpp
View file @
a94647f0
...
@@ -70,11 +70,12 @@ private:
...
@@ -70,11 +70,12 @@ private:
intf_thread_t
*
p_intf
;
intf_thread_t
*
p_intf
;
static
DialogsProvider
*
instance
;
static
DialogsProvider
*
instance
;
QStringList
showSimpleOpen
();
QStringList
showSimpleOpen
();
void
addFromSimple
(
bool
,
bool
);
public
slots
:
public
slots
:
void
playlistDialog
();
void
playlistDialog
();
void
bookmarksDialog
();
void
bookmarksDialog
();
void
M
ediaInfoDialog
();
void
m
ediaInfoDialog
();
void
prefsDialog
();
void
prefsDialog
();
void
extendedDialog
();
void
extendedDialog
();
void
messagesDialog
();
void
messagesDialog
();
...
@@ -92,8 +93,9 @@ public slots:
...
@@ -92,8 +93,9 @@ public slots:
void
SDMenuAction
(
QString
);
void
SDMenuAction
(
QString
);
void
streamingDialog
();
void
streamingDialog
();
void
openPlaylist
();
void
openPlaylist
();
void
openDirectory
();
void
savePlaylist
();
void
openMLDirectory
();
void
PLAppendDir
();
void
MLAppendDir
();
void
quit
();
void
quit
();
void
switchToSkins
();
void
switchToSkins
();
void
helpDialog
();
void
helpDialog
();
...
...
modules/gui/qt4/menus.cpp
View file @
a94647f0
...
@@ -27,8 +27,9 @@
...
@@ -27,8 +27,9 @@
#include <QActionGroup>
#include <QActionGroup>
#include <QSignalMapper>
#include <QSignalMapper>
#include
"main_interface.hpp"
#include
<vlc_intf_strings.h>
#include "main_interface.hpp"
#include "menus.hpp"
#include "menus.hpp"
#include "dialogs_provider.hpp"
#include "dialogs_provider.hpp"
#include "input_manager.hpp"
#include "input_manager.hpp"
...
@@ -155,8 +156,8 @@ QMenu *QVLCMenu::PlaylistMenu( MainInterface *mi, intf_thread_t *p_intf )
...
@@ -155,8 +156,8 @@ QMenu *QVLCMenu::PlaylistMenu( MainInterface *mi, intf_thread_t *p_intf )
menu
->
addMenu
(
SDMenu
(
p_intf
)
);
menu
->
addMenu
(
SDMenu
(
p_intf
)
);
menu
->
addSeparator
();
menu
->
addSeparator
();
DP_SADD
(
qtr
(
"Open playlist file"
),
""
,
""
,
openPlaylist
()
);
DP_SADD
(
qtr
(
I_PL_LOAD
),
""
,
""
,
openPlaylist
()
);
// DP_SADD( qtr( "Save playlist to file"
), "", "", savePlaylist() );
DP_SADD
(
qtr
(
I_PL_SAVE
),
""
,
""
,
savePlaylist
()
);
menu
->
addSeparator
();
menu
->
addSeparator
();
menu
->
addAction
(
qtr
(
"Undock from interface"
),
mi
,
menu
->
addAction
(
qtr
(
"Undock from interface"
),
mi
,
SLOT
(
undockPlaylist
()
)
);
SLOT
(
undockPlaylist
()
)
);
...
@@ -175,10 +176,9 @@ QMenu *QVLCMenu::ToolsMenu( intf_thread_t *p_intf, MainInterface *mi,
...
@@ -175,10 +176,9 @@ QMenu *QVLCMenu::ToolsMenu( intf_thread_t *p_intf, MainInterface *mi,
menu
->
addMenu
(
intfmenu
);
menu
->
addMenu
(
intfmenu
);
menu
->
addSeparator
();
menu
->
addSeparator
();
}
}
DP_SADD
(
qtr
(
"Messages"
),
""
,
""
,
messagesDialog
()
);
DP_SADD
(
qtr
(
I_MENU_MSG
),
""
,
""
,
messagesDialog
()
);
DP_SADD
(
qtr
(
"Information"
)
,
""
,
""
,
MediaInfoDialog
()
);
DP_SADD
(
qtr
(
I_MENU_INFO
)
,
""
,
""
,
mediaInfoDialog
()
);
DP_SADD
(
qtr
(
"Bookmarks"
),
""
,
""
,
bookmarksDialog
()
);
DP_SADD
(
qtr
(
I_MENU_EXT
),
""
,
""
,
extendedDialog
()
);
DP_SADD
(
qtr
(
"Extended settings"
),
""
,
""
,
extendedDialog
()
);
if
(
mi
)
if
(
mi
)
{
{
menu
->
addSeparator
();
menu
->
addSeparator
();
...
@@ -290,7 +290,7 @@ QMenu *QVLCMenu::NavigMenu( intf_thread_t *p_intf, QMenu *current )
...
@@ -290,7 +290,7 @@ QMenu *QVLCMenu::NavigMenu( intf_thread_t *p_intf, QMenu *current )
QMenu
*
QVLCMenu
::
SDMenu
(
intf_thread_t
*
p_intf
)
QMenu
*
QVLCMenu
::
SDMenu
(
intf_thread_t
*
p_intf
)
{
{
QMenu
*
menu
=
new
QMenu
();
QMenu
*
menu
=
new
QMenu
();
menu
->
setTitle
(
qtr
(
"Additional sources"
)
);
menu
->
setTitle
(
qtr
(
I_PL_SD
)
);
vlc_list_t
*
p_list
=
vlc_list_find
(
p_intf
,
VLC_OBJECT_MODULE
,
vlc_list_t
*
p_list
=
vlc_list_find
(
p_intf
,
VLC_OBJECT_MODULE
,
FIND_ANYWHERE
);
FIND_ANYWHERE
);
int
i_num
=
0
;
int
i_num
=
0
;
...
@@ -331,7 +331,7 @@ QMenu *QVLCMenu::HelpMenu()
...
@@ -331,7 +331,7 @@ QMenu *QVLCMenu::HelpMenu()
QMenu
*
menu
=
new
QMenu
();
QMenu
*
menu
=
new
QMenu
();
DP_SADD
(
qtr
(
"Help"
)
,
""
,
""
,
helpDialog
()
);
DP_SADD
(
qtr
(
"Help"
)
,
""
,
""
,
helpDialog
()
);
menu
->
addSeparator
();
menu
->
addSeparator
();
DP_SADD
(
qtr
(
"About VLC media player..."
),
""
,
""
,
aboutDialog
()
);
DP_SADD
(
qtr
(
I_MENU_ABOUT
),
""
,
""
,
aboutDialog
()
);
return
menu
;
return
menu
;
}
}
...
...
modules/misc/playlist/m3u.c
View file @
a94647f0
...
@@ -42,24 +42,26 @@ int Export_M3U ( vlc_object_t * );
...
@@ -42,24 +42,26 @@ int Export_M3U ( vlc_object_t * );
/*****************************************************************************
/*****************************************************************************
* Export_M3U: main export function
* Export_M3U: main export function
*****************************************************************************/
*****************************************************************************/
int
Export_M3U
(
vlc_object_t
*
p_this
)
static
void
DoChildren
(
playlist_t
*
p_playlist
,
playlist_export_t
*
p_export
,
playlist_item_t
*
p_root
)
{
{
playlist_t
*
p_playlist
=
(
playlist_t
*
)
p_this
;
playlist_export_t
*
p_export
=
(
playlist_export_t
*
)
p_playlist
->
p_private
;
int
i
,
j
;
int
i
,
j
;
msg_Dbg
(
p_playlist
,
"saving using M3U format"
);
/* Write header */
fprintf
(
p_export
->
p_file
,
"#EXTM3U
\n
"
);
/* Go through the playlist and add items */
/* Go through the playlist and add items */
for
(
i
=
0
;
i
<
p_
export
->
p_
root
->
i_children
;
i
++
)
for
(
i
=
0
;
i
<
p_root
->
i_children
;
i
++
)
{
{
playlist_item_t
*
p_current
=
p_
export
->
p_
root
->
pp_children
[
i
];
playlist_item_t
*
p_current
=
p_root
->
pp_children
[
i
];
if
(
p_current
->
i_flags
&
PLAYLIST_SAVE_FLAG
)
if
(
p_current
->
i_flags
&
PLAYLIST_SAVE_FLAG
)
continue
;
continue
;
if
(
p_current
->
i_children
>=
0
)
{
DoChildren
(
p_playlist
,
p_export
,
p_current
);
continue
;
}
assert
(
p_current
->
p_input
->
psz_uri
);
/* General info */
/* General info */
if
(
p_current
->
p_input
->
psz_name
&&
if
(
p_current
->
p_input
->
psz_name
&&
strcmp
(
p_current
->
p_input
->
psz_uri
,
strcmp
(
p_current
->
p_input
->
psz_uri
,
...
@@ -99,5 +101,19 @@ int Export_M3U( vlc_object_t *p_this )
...
@@ -99,5 +101,19 @@ int Export_M3U( vlc_object_t *p_this )
fprintf
(
p_export
->
p_file
,
"%s
\n
"
,
fprintf
(
p_export
->
p_file
,
"%s
\n
"
,
p_current
->
p_input
->
psz_uri
);
p_current
->
p_input
->
psz_uri
);
}
}
}
int
Export_M3U
(
vlc_object_t
*
p_this
)
{
playlist_t
*
p_playlist
=
(
playlist_t
*
)
p_this
;
playlist_export_t
*
p_export
=
(
playlist_export_t
*
)
p_playlist
->
p_private
;
msg_Dbg
(
p_playlist
,
"saving using M3U format"
);
/* Write header */
fprintf
(
p_export
->
p_file
,
"#EXTM3U
\n
"
);
DoChildren
(
p_playlist
,
p_export
,
p_export
->
p_root
);
return
VLC_SUCCESS
;
return
VLC_SUCCESS
;
}
}
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