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
9e4cdfd5
Commit
9e4cdfd5
authored
Dec 12, 2004
by
Benjamin Pracht
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* Item Info panel works again from playlist context menu
parent
d9bb7326
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
110 additions
and
102 deletions
+110
-102
modules/gui/macosx/playlist.h
modules/gui/macosx/playlist.h
+2
-0
modules/gui/macosx/playlist.m
modules/gui/macosx/playlist.m
+6
-0
modules/gui/macosx/playlistinfo.h
modules/gui/macosx/playlistinfo.h
+4
-4
modules/gui/macosx/playlistinfo.m
modules/gui/macosx/playlistinfo.m
+98
-98
No files found.
modules/gui/macosx/playlist.h
View file @
9e4cdfd5
...
...
@@ -74,5 +74,7 @@
-
(
void
)
appendArray
:(
NSArray
*
)
o_array
atPos
:(
int
)
i_position
enqueue
:(
BOOL
)
b_enqueue
;
-
(
playlist_item_t
*
)
selectedPlaylistItem
;
@end
modules/gui/macosx/playlist.m
View file @
9e4cdfd5
...
...
@@ -593,6 +593,12 @@ belongs to an Apple hidden private API, and then can "disapear" at any time*/
return
(
o_ctx_menu
);
}
-
(
playlist_item_t
*
)
selectedPlaylistItem
{
return
[[
o_outline_view
itemAtRow
:
[
o_outline_view
selectedRow
]]
pointerValue
];
}
@end
@implementation
VLCPlaylist
(
NSOutlineViewDataSource
)
...
...
modules/gui/macosx/playlistinfo.h
View file @
9e4cdfd5
...
...
@@ -41,8 +41,7 @@
IBOutlet
id
o_btn_add_group
;
IBOutlet
id
o_outline_view
;
int
i_item
;
NSMutableArray
*
o_selected
;
playlist_item_t
*
p_item
;
}
-
(
IBAction
)
togglePlaylistInfoPanel
:(
id
)
sender
;
...
...
@@ -50,7 +49,8 @@
-
(
void
)
initPanel
:(
id
)
sender
;
-
(
IBAction
)
infoCancel
:(
id
)
sender
;
-
(
IBAction
)
infoOk
:(
id
)
sender
;
-
(
int
)
getItem
;
-
(
playlist_item_t
*
)
getItem
;
-
(
bool
)
isItemInPlaylist
:(
playlist_item_t
*
)
p_item
;
@end
...
...
@@ -59,7 +59,7 @@
NSString
*
o_name
;
NSString
*
o_value
;
int
i_object_id
;
int
i
_item
;
playlist_item_t
*
p
_item
;
VLCInfoTreeItem
*
o_parent
;
NSMutableArray
*
o_children
;
}
...
...
modules/gui/macosx/playlistinfo.m
View file @
9e4cdfd5
...
...
@@ -41,18 +41,11 @@
if
(
self
!=
nil
)
{
i_item
=
-
1
;
o_selected
=
NULL
;
p_item
=
NULL
;
}
return
(
self
);
}
-
(
void
)
dealloc
{
[
o_selected
release
];
[
super
dealloc
];
}
-
(
void
)
awakeFromNib
{
[
o_info_window
setExcludedFromWindowsMenu
:
TRUE
];
...
...
@@ -73,9 +66,7 @@
}
else
{
i_item
=
[[[
VLCMain
sharedInstance
]
getPlaylist
]
selectedPlaylistItem
];
o_selected
=
[[[
VLCMain
sharedInstance
]
getPlaylist
]
selectedPlaylistItemsList
];
[
o_selected
retain
];
p_item
=
[[[
VLCMain
sharedInstance
]
getPlaylist
]
selectedPlaylistItem
];
[
self
initPanel
:
sender
];
}
}
...
...
@@ -94,10 +85,7 @@
if
(
p_playlist
)
{
i_item
=
p_playlist
->
i_index
;
o_selected
=
[
NSMutableArray
arrayWithObject
:
[
NSNumber
numberWithInt
:
i_item
]];
[
o_selected
retain
];
p_item
=
p_playlist
->
status
.
p_item
;
vlc_object_release
(
p_playlist
);
}
[
self
initPanel
:
sender
];
...
...
@@ -106,43 +94,41 @@
-
(
void
)
initPanel
:(
id
)
sender
{
intf_thread_t
*
p_intf
=
VLCIntf
;
playlist_t
*
p_playlist
;
p_playlist
=
vlc_object_find
(
p_intf
,
VLC_OBJECT_PLAYLIST
,
FIND_ANYWHERE
);
if
(
p_playlist
)
{
char
*
psz_temp
;
vlc_mutex_lock
(
&
p_item
->
input
.
lock
);
/*fill uri / title / author info */
if
(
p_item
->
input
.
psz_uri
)
{
[
o_uri_txt
setStringValue
:
([
NSString
stringWithUTF8String
:
p_playlist
->
pp_items
[
i_item
]
->
input
.
psz_uri
]
==
nil
)
?
[
NSString
stringWithCString
:
p_playlist
->
pp_items
[
i_item
]
->
input
.
psz_uri
]
:
[
NSString
stringWithUTF8String
:
p_playlist
->
pp_items
[
i_item
]
->
input
.
psz_uri
]];
([
NSString
stringWithUTF8String
:
p_item
->
input
.
psz_uri
]
==
nil
)
?
[
NSString
stringWithCString
:
p_item
->
input
.
psz_uri
]
:
[
NSString
stringWithUTF8String
:
p_item
->
input
.
psz_uri
]];
}
if
(
p_item
->
input
.
psz_name
)
{
[
o_title_txt
setStringValue
:
([
NSString
stringWithUTF8String
:
p_playlist
->
pp_items
[
i_item
]
->
input
.
psz_name
]
==
nil
)
?
[
NSString
stringWithCString
:
p_playlist
->
pp_items
[
i_item
]
->
input
.
psz_name
]
:
[
NSString
stringWithUTF8String
:
p_playlist
->
pp_items
[
i_item
]
->
input
.
psz_name
]];
psz_temp
=
playlist_GetInfo
(
p_playlist
,
i_item
,
_
(
"General"
),
_
(
"Author"
)
);
([
NSString
stringWithUTF8String
:
p_item
->
input
.
psz_name
]
==
nil
)
?
[
NSString
stringWithCString
:
p_item
->
input
.
psz_name
]
:
[
NSString
stringWithUTF8String
:
p_item
->
input
.
psz_name
]];
}
psz_temp
=
playlist_ItemGetInfo
(
p_item
,
_
(
"General"
),
_
(
"Author"
)
);
if
(
psz_temp
)
{
[
o_author_txt
setStringValue
:
[
NSString
stringWithUTF8String
:
psz_temp
]];
}
free
(
psz_temp
);
vlc_mutex_unlock
(
&
p_item
->
input
.
lock
);
[[
VLCInfoTreeItem
rootItem
]
refresh
];
[
o_outline_view
reloadData
];
vlc_object_release
(
p_playlist
);
}
[
o_info_window
makeKeyAndOrderFront
:
sender
];
}
...
...
@@ -154,34 +140,54 @@
-
(
IBAction
)
infoOk
:(
id
)
sender
{
int
c
;
intf_thread_t
*
p_intf
=
VLCIntf
;
playlist_t
*
p_playlist
=
vlc_object_find
(
p_intf
,
VLC_OBJECT_PLAYLIST
,
FIND_ANYWHERE
);
vlc_value_t
val
;
if
(
p_playlist
)
if
(
[
self
isItemInPlaylist
:
p_item
]
)
{
vlc_mutex_lock
(
&
p_
playlist
->
pp_items
[
i_item
]
->
input
.
lock
);
vlc_mutex_lock
(
&
p_
item
->
input
.
lock
);
p_playlist
->
pp_items
[
i_item
]
->
input
.
psz_uri
=
strdup
([[
o_uri_txt
stringValue
]
cString
]);
p_playlist
->
pp_items
[
i_item
]
->
input
.
psz_name
=
strdup
([[
o_title_txt
stringValue
]
cString
]);
playlist_ItemAddInfo
(
p_playlist
->
pp_items
[
i_item
],
_
(
"General"
),
_
(
"Author"
),
[[
o_author_txt
stringValue
]
cString
]);
p_item
->
input
.
psz_uri
=
strdup
([[
o_uri_txt
stringValue
]
cString
]);
p_item
->
input
.
psz_name
=
strdup
([[
o_title_txt
stringValue
]
cString
]);
playlist_ItemAddInfo
(
p_item
,
_
(
"General"
),
_
(
"Author"
),
[[
o_author_txt
stringValue
]
cString
]);
c
=
(
int
)[
o_selected
count
];
vlc_mutex_unlock
(
&
p_playlist
->
pp_items
[
i_item
]
->
input
.
lock
);
vlc_mutex_unlock
(
&
p_item
->
input
.
lock
);
val
.
b_bool
=
VLC_TRUE
;
var_Set
(
p_playlist
,
"intf-change"
,
val
);
vlc_object_release
(
p_playlist
);
}
[
o_info_window
orderOut
:
self
];
}
-
(
int
)
getItem
-
(
playlist_item_t
*
)
getItem
{
return
i_item
;
return
p_item
;
}
-
(
bool
)
isItemInPlaylist
:(
playlist_item_t
*
)
p_local_item
{
intf_thread_t
*
p_intf
=
VLCIntf
;
playlist_t
*
p_playlist
=
vlc_object_find
(
p_intf
,
VLC_OBJECT_PLAYLIST
,
FIND_ANYWHERE
);
int
i
;
if
(
p_playlist
==
NULL
)
{
return
NO
;
}
for
(
i
=
0
;
i
<
p_playlist
->
i_size
;
i
++
)
{
if
(
p_playlist
->
pp_items
[
i
]
==
p_local_item
)
{
vlc_object_release
(
p_playlist
);
return
YES
;
}
}
vlc_object_release
(
p_playlist
);
return
NO
;
}
@end
...
...
@@ -257,7 +263,7 @@ static VLCInfoTreeItem *o_root_item = nil;
o_value
=
[
o_item_value
copy
];
i_object_id
=
i_id
;
o_parent
=
o_parent_item
;
i
_item
=
[[[
VLCMain
sharedInstance
]
getInfo
]
getItem
];
p
_item
=
[[[
VLCMain
sharedInstance
]
getInfo
]
getItem
];
}
return
(
self
);
}
...
...
@@ -280,57 +286,51 @@ static VLCInfoTreeItem *o_root_item = nil;
{
if
(
o_children
==
NULL
)
{
intf_thread_t
*
p_intf
=
VLCIntf
;
playlist_t
*
p_playlist
=
vlc_object_find
(
p_intf
,
VLC_OBJECT_PLAYLIST
,
FIND_ANYWHERE
);
int
i
;
if
(
p_playlist
)
{
if
(
i_item
>
-
1
)
if
([[[
VLCMain
sharedInstance
]
getInfo
]
isItemInPlaylist
:
p_item
])
{
if
(
self
==
o_root_item
)
{
o_children
=
[[
NSMutableArray
alloc
]
initWithCapacity
:
p_playlist
->
pp_items
[
i_item
]
->
input
.
i_categories
];
for
(
i
=
0
;
i
<
p_playlist
->
pp_items
[
i_item
]
->
input
.
i_categories
;
i
++
)
vlc_mutex_lock
(
&
p_item
->
input
.
lock
);
o_children
=
[[
NSMutableArray
alloc
]
initWithCapacity
:
p_item
->
input
.
i_categories
];
for
(
i
=
0
;
i
<
p_item
->
input
.
i_categories
;
i
++
)
{
[
o_children
addObject
:[[
VLCInfoTreeItem
alloc
]
initWithName:
[
NSString
stringWithUTF8String
:
p_playlist
->
pp_items
[
i_item
]
->
input
.
pp_categories
[
i
]
->
psz_name
]
p_item
->
input
.
pp_categories
[
i
]
->
psz_name
]
value:
@""
ID:
i
parent:
self
]];
}
vlc_mutex_unlock
(
&
p_item
->
input
.
lock
);
}
else
if
(
o_parent
==
o_root_item
)
{
vlc_mutex_lock
(
&
p_item
->
input
.
lock
);
o_children
=
[[
NSMutableArray
alloc
]
initWithCapacity
:
p_playlist
->
pp_items
[
i_item
]
->
input
.
pp_categories
[
i_object_id
]
->
i_infos
];
for
(
i
=
0
;
i
<
p_playlist
->
pp_items
[
i_item
]
->
input
.
pp_categories
[
i_object_id
]
->
i_infos
;
i
++
)
p_item
->
input
.
pp_categories
[
i_object_id
]
->
i_infos
];
for
(
i
=
0
;
i
<
p_item
->
input
.
pp_categories
[
i_object_id
]
->
i_infos
;
i
++
)
{
[
o_children
addObject
:[[
VLCInfoTreeItem
alloc
]
initWithName:
[
NSString
stringWithUTF8String
:
p_playlist
->
pp_items
[
i_item
]
->
input
.
pp_categories
[
i_object_id
]
->
p_item
->
input
.
pp_categories
[
i_object_id
]
->
pp_infos
[
i
]
->
psz_name
]
value:
[
NSString
stringWithUTF8String
:
p_playlist
->
pp_items
[
i_item
]
->
input
.
pp_categories
[
i_object_id
]
->
p_item
->
input
.
pp_categories
[
i_object_id
]
->
pp_infos
[
i
]
->
psz_value
]
ID:
i
parent:
self
]];
}
vlc_mutex_unlock
(
&
p_item
->
input
.
lock
);
}
else
{
o_children
=
IsALeafNode
;
}
}
vlc_object_release
(
p_playlist
);
}
}
return
o_children
;
}
...
...
@@ -361,7 +361,7 @@ static VLCInfoTreeItem *o_root_item = nil;
*/
-
(
void
)
refresh
{
i
_item
=
[[[
VLCMain
sharedInstance
]
getInfo
]
getItem
];
p
_item
=
[[[
VLCMain
sharedInstance
]
getInfo
]
getItem
];
if
(
o_children
!=
NULL
)
{
[
o_children
release
];
...
...
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