Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc
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
Commits
ef5210f8
Commit
ef5210f8
authored
Mar 30, 2004
by
Benjamin Pracht
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Implements info treeview in the playlist proprieties window
parent
36af0dc7
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
192 additions
and
13 deletions
+192
-13
extras/MacOSX/Resources/English.lproj/MainMenu.nib/classes.nib
...s/MacOSX/Resources/English.lproj/MainMenu.nib/classes.nib
+1
-0
extras/MacOSX/Resources/English.lproj/MainMenu.nib/info.nib
extras/MacOSX/Resources/English.lproj/MainMenu.nib/info.nib
+3
-3
extras/MacOSX/Resources/English.lproj/MainMenu.nib/objects.nib
...s/MacOSX/Resources/English.lproj/MainMenu.nib/objects.nib
+0
-0
modules/gui/macosx/playlistinfo.h
modules/gui/macosx/playlistinfo.h
+21
-2
modules/gui/macosx/playlistinfo.m
modules/gui/macosx/playlistinfo.m
+167
-8
No files found.
extras/MacOSX/Resources/English.lproj/MainMenu.nib/classes.nib
View file @
ef5210f8
...
...
@@ -375,6 +375,7 @@
"o_btn_cancel" = id;
"o_btn_ok" = id;
"o_info_window" = id;
"o_outline_view" = id;
"o_title_lbl" = id;
"o_title_txt" = id;
"o_uri_lbl" = id;
...
...
extras/MacOSX/Resources/English.lproj/MainMenu.nib/info.nib
View file @
ef5210f8
...
...
@@ -3,7 +3,7 @@
<plist
version=
"1.0"
>
<dict>
<key>
IBDocumentLocation
</key>
<string>
392 439 505 517 0 0 1280 1002
</string>
<string>
486 129 505 517 0 0 1024 746
</string>
<key>
IBEditorPositions
</key>
<dict>
<key>
1617
</key>
...
...
@@ -19,8 +19,8 @@
<array/>
<key>
IBOpenObjects
</key>
<array>
<integer>
1
617
</integer>
<integer>
2
9
</integer>
<integer>
1
789
</integer>
<integer>
2
1
</integer>
</array>
<key>
IBSystem Version
</key>
<string>
7F44
</string>
...
...
extras/MacOSX/Resources/English.lproj/MainMenu.nib/objects.nib
View file @
ef5210f8
No preview for this file type
modules/gui/macosx/playlistinfo.h
View file @
ef5210f8
...
...
@@ -37,9 +37,8 @@
IBOutlet
id
o_author_txt
;
IBOutlet
id
o_btn_info_ok
;
IBOutlet
id
o_btn_info_cancel
;
IBOutlet
id
o_
tbv_info
;
IBOutlet
id
o_
outline_view
;
IBOutlet
id
o_vlc_playlist
;
id
o_otl_data
;
}
-
(
IBAction
)
togglePlaylistInfoPanel
:(
id
)
sender
;
...
...
@@ -47,3 +46,23 @@
-
(
IBAction
)
infoOk
:(
id
)
sender
;
@end
@interface
VLCInfoTreeItem
:
NSObject
{
NSString
*
o_name
;
NSString
*
o_value
;
int
i_object_id
;
int
i_item
;
VLCInfoTreeItem
*
o_parent
;
NSMutableArray
*
o_children
;
}
+
(
VLCInfoTreeItem
*
)
rootItem
;
-
(
int
)
numberOfChildren
;
-
(
VLCInfoTreeItem
*
)
childAtIndex
:(
int
)
i_index
;
-
(
NSString
*
)
getName
;
-
(
NSString
*
)
getValue
;
-
(
void
)
refresh
;
@end
modules/gui/macosx/playlistinfo.m
View file @
ef5210f8
...
...
@@ -39,8 +39,6 @@
{
[
o_info_window
setExcludedFromWindowsMenu
:
TRUE
];
[
o_tbv_info
setOutlineTableColumn
:
0
];
[
o_tbv_info
setDataSource
:
self
];
[
o_info_window
setTitle
:
_NS
(
"Properties"
)];
[
o_uri_lbl
setStringValue
:
_NS
(
"URI"
)];
...
...
@@ -72,9 +70,9 @@
[
o_title_txt
setStringValue
:[
NSString
stringWithUTF8String
:
p_playlist
->
pp_items
[
i_item
]
->
psz_name
]];
[
o_author_txt
setStringValue
:[
NSString
stringWithUTF8String
:
playlist_GetInfo
(
p_playlist
,
i_item
,
_
(
"General"
),
_
(
"Author"
)
)]];
/*fill info outline*/
// [o_tbv_info
vlc_object_release
(
p_playlist
);
[[
VLCInfoTreeItem
rootItem
]
refresh
];
[
o_outline_view
reloadData
];
vlc_object_release
(
p_playlist
);
}
[
o_info_window
makeKeyAndOrderFront
:
sender
];
}
...
...
@@ -104,12 +102,173 @@
vlc_mutex_unlock
(
&
p_playlist
->
pp_items
[
i_item
]
->
lock
);
val
.
b_bool
=
VLC_TRUE
;
var_Set
(
p_playlist
,
"int-change"
,
val
);
var_Set
(
p_playlist
,
"int
f
-change"
,
val
);
vlc_object_release
(
p_playlist
);
}
[
self
togglePlaylistInfoPanel
:
self
];
}
}
@end
@implementation
VLCPlaylistInfo
(
NSTableDataSource
)
-
(
int
)
outlineView
:(
NSOutlineView
*
)
outlineView
numberOfChildrenOfItem
:(
id
)
item
{
return
(
item
==
nil
)
?
[[
VLCInfoTreeItem
rootItem
]
numberOfChildren
]
:
[
item
numberOfChildren
];
}
-
(
BOOL
)
outlineView
:(
NSOutlineView
*
)
outlineView
isItemExpandable
:(
id
)
item
{
return
([
item
numberOfChildren
]
>
0
);
}
-
(
id
)
outlineView
:(
NSOutlineView
*
)
outlineView
child
:(
int
)
index
ofItem
:(
id
)
item
{
return
(
item
==
nil
)
?
[[
VLCInfoTreeItem
rootItem
]
childAtIndex
:
index
]
:
[
item
childAtIndex
:
index
];
}
-
(
id
)
outlineView
:(
NSOutlineView
*
)
outlineView
objectValueForTableColumn
:(
NSTableColumn
*
)
tableColumn
byItem
:(
id
)
item
{
if
([[
tableColumn
identifier
]
isEqualToString
:
@"0"
])
{
return
(
item
==
nil
)
?
@""
:
(
id
)[
item
getName
];
}
else
{
return
(
item
==
nil
)
?
@""
:
(
id
)[
item
getValue
];
}
}
@end
@implementation
VLCInfoTreeItem
static
VLCInfoTreeItem
*
o_root_item
=
nil
;
#define IsALeafNode ((id)-1)
-
(
id
)
initWithName
:
(
NSString
*
)
o_item_name
value
:
(
NSString
*
)
o_item_value
ID
:
(
int
)
i_id
parent
:(
VLCInfoTreeItem
*
)
o_parent_item
{
self
=
[
super
init
];
if
(
self
!=
nil
)
{
i_item
=
[[[
NSApp
delegate
]
getPlaylist
]
selectedPlaylistItem
];
o_name
=
[
o_item_name
copy
];
o_value
=
[
o_item_value
copy
];
i_object_id
=
i_id
;
o_parent
=
o_parent_item
;
}
return
(
self
);
}
+
(
VLCInfoTreeItem
*
)
rootItem
{
if
(
o_root_item
==
nil
)
o_root_item
=
[[
VLCInfoTreeItem
alloc
]
initWithName
:
@"main"
value
:
@""
ID
:
0
parent
:
nil
];
return
o_root_item
;
}
-
(
void
)
dealloc
{
if
(
o_children
!=
IsALeafNode
)
[
o_children
release
];
[
o_name
release
];
[
super
dealloc
];
}
/* Creates and returns the array of children
* Loads children incrementally */
-
(
NSArray
*
)
children
{
if
(
o_children
==
NULL
)
{
intf_thread_t
*
p_intf
=
[
NSApp
getIntf
];
playlist_t
*
p_playlist
=
vlc_object_find
(
p_intf
,
VLC_OBJECT_PLAYLIST
,
FIND_ANYWHERE
);
int
i
;
if
(
p_playlist
)
{
if
(
i_item
>
-
1
)
{
if
(
self
==
o_root_item
)
{
o_children
=
[[
NSMutableArray
alloc
]
initWithCapacity
:
p_playlist
->
pp_items
[
i_item
]
->
i_categories
];
for
(
i
=
0
;
i
<
p_playlist
->
pp_items
[
i_item
]
->
i_categories
;
i
++
)
{
[
o_children
addObject
:[[
VLCInfoTreeItem
alloc
]
initWithName:
[
NSString
stringWithUTF8String
:
p_playlist
->
pp_items
[
i_item
]
->
pp_categories
[
i
]
->
psz_name
]
value:
@""
ID:
i
parent:
self
]];
}
}
else
if
(
o_parent
==
o_root_item
)
{
o_children
=
[[
NSMutableArray
alloc
]
initWithCapacity
:
p_playlist
->
pp_items
[
i_item
]
->
pp_categories
[
i_object_id
]
->
i_infos
];
for
(
i
=
0
;
i
<
p_playlist
->
pp_items
[
i_item
]
->
pp_categories
[
i_object_id
]
->
i_infos
;
i
++
)
{
[
o_children
addObject
:[[
VLCInfoTreeItem
alloc
]
initWithName:
[
NSString
stringWithUTF8String
:
p_playlist
->
pp_items
[
i_item
]
->
pp_categories
[
i_object_id
]
->
pp_infos
[
i
]
->
psz_name
]
value:
[
NSString
stringWithUTF8String
:
p_playlist
->
pp_items
[
i_item
]
->
pp_categories
[
i_object_id
]
->
pp_infos
[
i
]
->
psz_value
]
ID:
i
parent:
self
]];
}
}
else
{
o_children
=
IsALeafNode
;
}
}
vlc_object_release
(
p_playlist
);
}
}
return
o_children
;
}
-
(
NSString
*
)
getName
{
return
o_name
;
}
-
(
NSString
*
)
getValue
{
return
o_value
;
}
-
(
VLCInfoTreeItem
*
)
childAtIndex
:(
int
)
i_index
{
return
[[
self
children
]
objectAtIndex
:
i_index
];
}
-
(
int
)
numberOfChildren
{
id
i_tmp
=
[
self
children
];
return
(
i_tmp
==
IsALeafNode
)
?
(
-
1
)
:
(
int
)[
i_tmp
count
];
}
-
(
int
)
selectedPlaylistItem
{
return
i_item
;
}
-
(
void
)
refresh
{
if
(
o_children
!=
NULL
)
{
[
o_children
release
];
o_children
=
NULL
;
}
i_item
=
[[[
NSApp
delegate
]
getPlaylist
]
selectedPlaylistItem
];
}
@end
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