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
c04771fd
Commit
c04771fd
authored
Jan 15, 2004
by
Sigmund Augdal Helberg
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
modules/gui/wxwindows/*:
* use a standard file dialog to export playlist
parent
972b9aa5
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
42 additions
and
170 deletions
+42
-170
modules/gui/wxwindows/playlist.cpp
modules/gui/wxwindows/playlist.cpp
+41
-150
modules/gui/wxwindows/wxwindows.h
modules/gui/wxwindows/wxwindows.h
+1
-20
No files found.
modules/gui/wxwindows/playlist.cpp
View file @
c04771fd
...
...
@@ -2,7 +2,7 @@
* playlist.cpp : wxWindows plugin for vlc
*****************************************************************************
* Copyright (C) 2000-2004 VideoLAN
* $Id: playlist.cpp,v 1.3
6 2004/01/11 00:45:06 zorglub
Exp $
* $Id: playlist.cpp,v 1.3
7 2004/01/15 21:49:07 sigmunau
Exp $
*
* Authors: Olivier Teulire <ipkiss@via.ecp.fr>
*
...
...
@@ -157,13 +157,6 @@ BEGIN_EVENT_TABLE(NewGroup, wxDialog)
END_EVENT_TABLE
()
/* Event Table for the ExportPlaylist class */
BEGIN_EVENT_TABLE
(
ExportPlaylist
,
wxDialog
)
EVT_BUTTON
(
wxID_OK
,
ExportPlaylist
::
OnOk
)
EVT_BUTTON
(
wxID_CANCEL
,
ExportPlaylist
::
OnCancel
)
EVT_BUTTON
(
Browse_Event
,
ExportPlaylist
::
OnBrowse
)
END_EVENT_TABLE
()
/*****************************************************************************
* Constructor.
*****************************************************************************/
...
...
@@ -424,10 +417,10 @@ void Playlist::UpdateItem( int i )
return
;
}
listview
->
SetItem
(
i
,
0
,
wxL2U
(
p_playlist
->
pp_items
[
i
]
->
psz_name
)
);
listview
->
SetItem
(
i
,
1
,
wx
L2
U
(
playlist_GetInfo
(
p_playlist
,
i
,
listview
->
SetItem
(
i
,
1
,
wxU
(
playlist_GetInfo
(
p_playlist
,
i
,
_
(
"General"
)
,
_
(
"Author"
)
)
)
);
char
*
psz_group
=
playlist_FindGroup
(
p_playlist
,
p_playlist
->
pp_items
[
i
]
->
i_group
);
char
*
psz_group
=
playlist_FindGroup
(
p_playlist
,
p_playlist
->
pp_items
[
i
]
->
i_group
);
listview
->
SetItem
(
i
,
2
,
wxL2U
(
psz_group
?
psz_group
:
_
(
"Normal"
)
)
);
...
...
@@ -588,9 +581,42 @@ void Playlist::OnClose( wxCommandEvent& WXUNUSED(event) )
void
Playlist
::
OnSave
(
wxCommandEvent
&
WXUNUSED
(
event
)
)
{
ExportPlaylist
*
exp_pl
=
new
ExportPlaylist
(
p_intf
,
this
);
exp_pl
->
ShowModal
();
delete
exp_pl
;
struct
{
char
*
psz_desc
;
char
*
psz_filter
;
char
*
psz_module
;
}
formats
[]
=
{{
_
(
"M3U file"
),
"*.m3u"
,
"export-m3u"
},
{
_
(
"PLS file"
),
"*.pls"
,
"export-pls"
}};
wxString
filter
=
wxT
(
""
);
for
(
unsigned
int
i
=
0
;
i
<
sizeof
(
formats
)
/
sizeof
(
formats
[
0
]);
i
++
)
{
filter
.
Append
(
wxT
(
formats
[
i
].
psz_desc
)
);
filter
.
Append
(
wxT
(
"|"
)
);
filter
.
Append
(
wxT
(
formats
[
i
].
psz_filter
)
);
filter
.
Append
(
wxT
(
"|"
)
);
}
wxFileDialog
dialog
(
this
,
wxU
(
_
(
"Save playlist"
)),
wxT
(
""
),
wxT
(
""
),
filter
,
wxSAVE
);
if
(
dialog
.
ShowModal
()
==
wxID_OK
)
{
playlist_t
*
p_playlist
=
(
playlist_t
*
)
vlc_object_find
(
p_intf
,
VLC_OBJECT_PLAYLIST
,
FIND_ANYWHERE
);
if
(
p_playlist
)
{
if
(
dialog
.
GetFilename
().
mb_str
()
)
{
playlist_Export
(
p_playlist
,
dialog
.
GetFilename
().
mb_str
(),
formats
[
dialog
.
GetFilterIndex
()].
psz_module
);
}
}
vlc_object_release
(
p_playlist
);
}
}
void
Playlist
::
OnOpen
(
wxCommandEvent
&
WXUNUSED
(
event
)
)
...
...
@@ -604,7 +630,7 @@ void Playlist::OnOpen( wxCommandEvent& WXUNUSED(event) )
}
wxFileDialog
dialog
(
this
,
wxU
(
_
(
"Open playlist"
)),
wxT
(
""
),
wxT
(
""
),
wxT
(
"
*
"
),
wxOPEN
);
wxT
(
""
),
wxT
(
""
),
wxT
(
"
All playlists|*.pls;*.m3u;*.asx;*.b4s|M3U files|*.m3u
"
),
wxOPEN
);
if
(
dialog
.
ShowModal
()
==
wxID_OK
)
{
...
...
@@ -1225,138 +1251,3 @@ void NewGroup::OnCancel( wxCommandEvent& WXUNUSED(event) )
{
EndModal
(
wxID_CANCEL
);
}
/***************************************************************************
* Export playlist class
***************************************************************************/
ExportPlaylist
::
ExportPlaylist
(
intf_thread_t
*
_p_intf
,
wxWindow
*
_p_parent
)
:
wxDialog
(
_p_parent
,
-
1
,
wxU
(
_
(
"Export playlist"
)),
wxDefaultPosition
,
wxDefaultSize
,
wxDEFAULT_FRAME_STYLE
)
{
vlc_list_t
*
p_list
;
module_t
*
p_module
;
/* Initializations */
p_intf
=
_p_intf
;
SetIcon
(
*
p_intf
->
p_sys
->
p_icon
);
/* Create a panel to put everything in*/
wxPanel
*
panel
=
new
wxPanel
(
this
,
-
1
);
panel
->
SetAutoLayout
(
TRUE
);
/* Create the file box */
wxStaticBox
*
file_box
=
new
wxStaticBox
(
panel
,
-
1
,
wxU
(
_
(
"File to save to"
))
);
wxStaticBoxSizer
*
file_sizer
=
new
wxStaticBoxSizer
(
file_box
,
wxHORIZONTAL
);
file_text
=
new
wxTextCtrl
(
panel
,
-
1
,
wxU
(
""
),
wxDefaultPosition
,
wxSize
(
250
,
-
1
),
wxTE_PROCESS_ENTER
);
file_text
->
SetToolTip
(
wxU
(
_
(
"Enter the name of the file to export "
"the playlist to."
))
);
wxButton
*
file_button
=
new
wxButton
(
panel
,
Browse_Event
,
wxU
(
_
(
"Browse"
))
);
file_sizer
->
Add
(
file_text
,
0
,
wxALL
|
wxALIGN_CENTER
,
5
);
file_sizer
->
Add
(
file_button
,
0
,
wxALL
|
wxALIGN_CENTER
,
5
);
/* Create the type box */
wxStaticBox
*
type_box
=
new
wxStaticBox
(
panel
,
-
1
,
wxU
(
_
(
"Select export type"
))
);
wxStaticBoxSizer
*
type_sizer
=
new
wxStaticBoxSizer
(
type_box
,
wxHORIZONTAL
);
type_combo
=
new
wxComboBox
(
panel
,
-
1
,
wxT
(
""
),
wxDefaultPosition
,
wxSize
(
250
,
-
1
),
0
,
NULL
);
type_sizer
->
Add
(
type_combo
,
0
,
wxALL
|
wxALIGN_CENTER
,
5
);
type_sizer
->
Layout
();
wxButton
*
ok_button
=
new
wxButton
(
panel
,
wxID_OK
,
wxU
(
_
(
"OK"
))
);
ok_button
->
SetDefault
();
wxButton
*
cancel_button
=
new
wxButton
(
panel
,
wxID_CANCEL
,
wxU
(
_
(
"Cancel"
))
);
wxBoxSizer
*
button_sizer
=
new
wxBoxSizer
(
wxHORIZONTAL
);
button_sizer
->
Add
(
ok_button
,
0
,
wxALL
,
5
);
button_sizer
->
Add
(
cancel_button
,
0
,
wxALL
,
5
);
button_sizer
->
Layout
();
wxBoxSizer
*
panel_sizer
=
new
wxBoxSizer
(
wxVERTICAL
);
panel_sizer
->
Add
(
file_sizer
,
0
,
wxEXPAND
|
wxALL
,
5
);
panel_sizer
->
Add
(
type_sizer
,
0
,
wxEXPAND
|
wxALL
,
5
);
panel_sizer
->
Add
(
button_sizer
,
0
,
wxEXPAND
|
wxALL
,
5
);
panel_sizer
->
Layout
();
panel
->
SetSizerAndFit
(
panel_sizer
);
wxBoxSizer
*
main_sizer
=
new
wxBoxSizer
(
wxVERTICAL
);
main_sizer
->
Add
(
panel
,
1
,
wxEXPAND
,
0
);
main_sizer
->
Layout
();
SetSizerAndFit
(
main_sizer
);
/* build a list of available modules */
p_list
=
vlc_list_find
(
p_intf
,
VLC_OBJECT_MODULE
,
FIND_ANYWHERE
);
for
(
int
i_index
=
0
;
i_index
<
p_list
->
i_count
;
i_index
++
)
{
p_module
=
(
module_t
*
)
p_list
->
p_values
[
i_index
].
p_object
;
if
(
!
strcmp
(
p_module
->
psz_capability
,
"playlist export"
)
)
{
type_combo
->
Append
(
wxU
(
p_module
->
psz_longname
),
p_module
->
pp_shortcuts
[
1
]
?
p_module
->
pp_shortcuts
[
1
]
:
p_module
->
psz_object_name
);
}
}
vlc_list_release
(
p_list
);
}
ExportPlaylist
::~
ExportPlaylist
()
{
}
void
ExportPlaylist
::
OnOk
(
wxCommandEvent
&
WXUNUSED
(
event
)
)
{
playlist_t
*
p_playlist
=
(
playlist_t
*
)
vlc_object_find
(
p_intf
,
VLC_OBJECT_PLAYLIST
,
FIND_ANYWHERE
);
if
(
p_playlist
)
{
char
*
psz_type
=
(
char
*
)
type_combo
->
GetClientData
(
type_combo
->
GetSelection
()
);
if
(
file_text
->
GetValue
().
mb_str
()
&&
psz_type
)
{
playlist_Export
(
p_playlist
,
file_text
->
GetValue
().
mb_str
(),
psz_type
);
}
}
vlc_object_release
(
p_playlist
);
EndModal
(
wxID_OK
);
}
void
ExportPlaylist
::
OnCancel
(
wxCommandEvent
&
WXUNUSED
(
event
)
)
{
EndModal
(
wxID_CANCEL
);
}
void
ExportPlaylist
::
OnBrowse
(
wxCommandEvent
&
WXUNUSED
(
event
)
)
{
wxFileDialog
dialog
(
this
,
wxU
(
_
(
"Save playlist"
)),
wxT
(
""
),
wxT
(
""
),
wxT
(
"*"
),
wxSAVE
);
if
(
dialog
.
ShowModal
()
==
wxID_OK
)
{
file_text
->
SetValue
(
dialog
.
GetPath
()
);
}
}
modules/gui/wxwindows/wxwindows.h
View file @
c04771fd
...
...
@@ -2,7 +2,7 @@
* wxwindows.h: private wxWindows interface description
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
* $Id: wxwindows.h,v 1.8
4 2004/01/11 00:45:06 zorglub
Exp $
* $Id: wxwindows.h,v 1.8
5 2004/01/15 21:49:07 sigmunau
Exp $
*
* Authors: Gildas Bazin <gbazin@netcourrier.com>
*
...
...
@@ -842,25 +842,6 @@ protected:
char
*
psz_name
;
};
class
ExportPlaylist
:
public
wxDialog
{
public:
/* Constructor */
ExportPlaylist
(
intf_thread_t
*
p_intf
,
wxWindow
*
p_parent
);
virtual
~
ExportPlaylist
();
private:
/* Event handlers (these functions should _not_ be virtual) */
void
OnOk
(
wxCommandEvent
&
event
);
void
OnCancel
(
wxCommandEvent
&
event
);
void
OnBrowse
(
wxCommandEvent
&
event
);
DECLARE_EVENT_TABLE
();
intf_thread_t
*
p_intf
;
wxTextCtrl
*
file_text
;
wxComboBox
*
type_combo
;
};
/* ItemInfo Dialog */
class
ItemInfoDialog
:
public
wxDialog
{
...
...
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