Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-gpu
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-gpu
Commits
04babc14
Commit
04babc14
authored
Jun 24, 2007
by
Jean-Baptiste Kempf
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Qt4 - Info Panels, clean code, add comments and cosmetics.
parent
e654a86d
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
148 additions
and
88 deletions
+148
-88
modules/gui/qt4/components/infopanels.cpp
modules/gui/qt4/components/infopanels.cpp
+148
-88
No files found.
modules/gui/qt4/components/infopanels.cpp
View file @
04babc14
...
...
@@ -30,6 +30,7 @@
#include <QPushButton>
#include <QHeaderView>
#include <QList>
#include <QStringList>
#include <QGridLayout>
#include <QLineEdit>
#include <QLabel>
...
...
@@ -40,13 +41,16 @@
* Single panels
************************************************************************/
/* First Panel - Meta Info */
MetaPanel
::
MetaPanel
(
QWidget
*
parent
,
intf_thread_t
*
_p_intf
)
:
QWidget
(
parent
),
p_intf
(
_p_intf
)
/**
* First Panel - Meta Info
* All the usual MetaData are displayed and can be changed.
**/
MetaPanel
::
MetaPanel
(
QWidget
*
parent
,
intf_thread_t
*
_p_intf
)
:
QWidget
(
parent
),
p_intf
(
_p_intf
)
{
int
line
=
0
;
QGridLayout
*
l
=
new
QGridLayout
(
this
);
int
line
=
0
;
/* Counter for GridLayout */
p_input
=
NULL
;
#define ADD_META( string, widget ) { \
...
...
@@ -55,14 +59,17 @@ MetaPanel::MetaPanel( QWidget *parent, intf_thread_t *_p_intf ) :
l->addWidget( widget, line, 1, 1, 9 ); \
line++; }
/* Title, artist and album*/
ADD_META
(
VLC_META_TITLE
,
title_text
);
/* OK */
ADD_META
(
VLC_META_ARTIST
,
artist_text
);
/* OK */
ADD_META
(
VLC_META_COLLECTION
,
collection_text
);
/* OK */
/* Genre Name */
/* FIXME List id3genres.h is not includable yet ? */
/* Genre Name */
/* FIXME List id3genres.h is not includable yet ? */
genre_text
=
new
QLineEdit
;
l
->
addWidget
(
new
QLabel
(
qtr
(
VLC_META_GENRE
)
+
" :"
),
line
,
0
);
l
->
addWidget
(
genre_text
,
line
,
1
,
1
,
6
);
/* Date (Should be in years) */
date_text
=
new
QSpinBox
;
setSpinBounds
(
date_text
);
l
->
addWidget
(
new
QLabel
(
qtr
(
VLC_META_DATE
)
+
" :"
),
line
,
7
);
...
...
@@ -80,6 +87,7 @@ MetaPanel::MetaPanel( QWidget *parent, intf_thread_t *_p_intf ) :
l
->
addWidget
(
rating_text
,
line
,
6
,
1
,
4
);
line
++
;
/* Now Playing ? */
ADD_META
(
VLC_META_NOW_PLAYING
,
nowplaying_text
);
/* Language and settings */
...
...
@@ -92,7 +100,6 @@ MetaPanel::MetaPanel( QWidget *parent, intf_thread_t *_p_intf ) :
line
++
;
/* ART_URL */
// ADD_META( VLC_META_URL, setting_text );
art_cover
=
new
QLabel
(
""
);
art_cover
->
setMinimumHeight
(
128
);
art_cover
->
setMinimumWidth
(
128
);
...
...
@@ -100,34 +107,32 @@ MetaPanel::MetaPanel( QWidget *parent, intf_thread_t *_p_intf ) :
art_cover
->
setMaximumWidth
(
128
);
art_cover
->
setScaledContents
(
true
);
art_cover
->
setPixmap
(
QPixmap
(
":/noart.png"
)
);
l
->
addWidget
(
art_cover
,
line
,
8
,
4
,
2
);
#define ADD_META_
B
( string, widget ) { \
#define ADD_META_
2
( string, widget ) { \
l->addWidget( new QLabel( qtr( string ) + " :" ), line, 0 ); \
widget = new QLineEdit; \
l->addWidget( widget, line, 1, 1, 7 ); \
line++; }
ADD_META_
B
(
VLC_META_COPYRIGHT
,
copyright_text
);
ADD_META_
B
(
VLC_META_PUBLISHER
,
publisher_text
);
ADD_META_
2
(
VLC_META_COPYRIGHT
,
copyright_text
);
ADD_META_
2
(
VLC_META_PUBLISHER
,
publisher_text
);
ADD_META_
B
(
VLC_META_ENCODED_BY
,
publisher_text
);
ADD_META_
B
(
VLC_META_DESCRIPTION
,
description_text
);
// Comment Two lines?
ADD_META_
2
(
VLC_META_ENCODED_BY
,
publisher_text
);
ADD_META_
2
(
VLC_META_DESCRIPTION
,
description_text
);
/* ADD_META( TRACKID
) DO NOT SHOW it
*/
/* ADD_META( TRACKID
) Useless ?
*/
/* ADD_URI - DO not show it, done outside */
#undef ADD_META
#undef ADD_META_B
// CONNECT( model, artSet( QString ) , this, setArt( QString ) );
#undef ADD_META_2
}
MetaPanel
::~
MetaPanel
()
{
}
MetaPanel
::~
MetaPanel
(){}
/**
* Save the MetaData, triggered by parent->save Button
**/
void
MetaPanel
::
saveMeta
()
{
playlist_t
*
p_playlist
;
...
...
@@ -154,11 +159,11 @@ void MetaPanel::saveMeta()
/* now we read the modified meta data */
free
(
p_input
->
p_meta
->
psz_artist
);
p_input
->
p_meta
->
psz_artist
=
strdup
(
artist_text
->
text
().
toUtf8
(
)
);
p_input
->
p_meta
->
psz_artist
=
strdup
(
qtu
(
artist_text
->
text
()
)
);
free
(
p_input
->
p_meta
->
psz_album
);
p_input
->
p_meta
->
psz_album
=
strdup
(
collection_text
->
text
().
toUtf8
(
)
);
p_input
->
p_meta
->
psz_album
=
strdup
(
qtu
(
collection_text
->
text
()
)
);
free
(
p_input
->
p_meta
->
psz_genre
);
p_input
->
p_meta
->
psz_genre
=
strdup
(
genre_text
->
text
().
toUtf8
(
)
);
p_input
->
p_meta
->
psz_genre
=
strdup
(
qtu
(
genre_text
->
text
()
)
);
free
(
p_input
->
p_meta
->
psz_date
);
p_input
->
p_meta
->
psz_date
=
(
char
*
)
malloc
(
5
);
snprintf
(
p_input
->
p_meta
->
psz_date
,
5
,
"%d"
,
date_text
->
value
()
);
...
...
@@ -166,7 +171,7 @@ void MetaPanel::saveMeta()
p_input
->
p_meta
->
psz_tracknum
=
(
char
*
)
malloc
(
5
);
snprintf
(
p_input
->
p_meta
->
psz_tracknum
,
5
,
"%d"
,
seqnum_text
->
value
()
);
free
(
p_input
->
p_meta
->
psz_title
);
p_input
->
p_meta
->
psz_title
=
strdup
(
title_text
->
text
().
toUtf8
(
)
);
p_input
->
p_meta
->
psz_title
=
strdup
(
qtu
(
title_text
->
text
()
)
);
p_playlist
=
pl_Yield
(
p_intf
);
...
...
@@ -180,6 +185,9 @@ void MetaPanel::saveMeta()
pl_Release
(
p_playlist
);
}
/**
* Update all the MetaData and art on an "item-changed" event
**/
void
MetaPanel
::
update
(
input_item_t
*
p_item
)
{
char
*
psz_meta
;
...
...
@@ -188,7 +196,7 @@ void MetaPanel::update( input_item_t *p_item )
if( !EMPTY_STR( psz_meta ) ) \
widget->setText( qfu( psz_meta ) ); \
else \
widget->setText( "" );
}
widget->setText( "" ); }
#define UPDATE_META_INT( meta, widget ) { \
psz_meta = p_item->p_meta->psz_##meta; \
...
...
@@ -226,6 +234,8 @@ void MetaPanel::update( input_item_t *p_item )
UPDATE_META_INT
(
rating
,
rating_text
);
#undef UPDATE_META
/* Art Urls */
psz_meta
=
p_item
->
p_meta
->
psz_arturl
;
if
(
psz_meta
&&
!
strncmp
(
psz_meta
,
"file://"
,
7
)
)
{
...
...
@@ -236,12 +246,21 @@ void MetaPanel::update( input_item_t *p_item )
art_cover
->
setPixmap
(
QPixmap
(
":/noart.png"
)
);
}
/*
* Clear all the metadata widgets
* Unused yet
*/
void
MetaPanel
::
clear
(){}
ExtraMetaPanel
::
ExtraMetaPanel
(
QWidget
*
parent
,
intf_thread_t
*
_p_intf
)
:
QWidget
(
parent
),
p_intf
(
_p_intf
)
/**
* Second Panel - Shows the extra metadata in a tree, non editable.
**/
ExtraMetaPanel
::
ExtraMetaPanel
(
QWidget
*
parent
,
intf_thread_t
*
_p_intf
)
:
QWidget
(
parent
),
p_intf
(
_p_intf
)
{
QGridLayout
*
layout
=
new
QGridLayout
(
this
);
QLabel
*
topLabel
=
new
QLabel
(
qtr
(
"Extra metadata and other information"
" are shown in this list.
\n
"
)
);
topLabel
->
setWordWrap
(
true
);
...
...
@@ -250,14 +269,18 @@ ExtraMetaPanel::ExtraMetaPanel( QWidget *parent, intf_thread_t *_p_intf ) :
extraMetaTree
=
new
QTreeWidget
(
this
);
extraMetaTree
->
setAlternatingRowColors
(
true
);
extraMetaTree
->
setColumnCount
(
2
);
extraMetaTree
->
header
()
->
hide
();
/* QStringList *treeHeaders;
treeHeaders << qtr( "Test1" ) << qtr( "Test2" ); */
/* QStringList headerList = ( QStringList() << qtr( "Type" )
* << qtr( "Value" ) );
* Useless, add this header if you think it would help the user **
*/
layout
->
addWidget
(
extraMetaTree
,
1
,
0
);
}
/**
* Update the Extra Metadata from p_meta->i_extras
**/
void
ExtraMetaPanel
::
update
(
input_item_t
*
p_item
)
{
vlc_meta_t
*
p_meta
=
p_item
->
p_meta
;
...
...
@@ -273,21 +296,108 @@ void ExtraMetaPanel::update( input_item_t *p_item )
extraMetaTree
->
addTopLevelItems
(
items
);
}
void
ExtraMetaPanel
::
clear
(){}
/**
* Clear the ExtraMetaData Tree
**/
void
ExtraMetaPanel
::
clear
()
{
extraMetaTree
->
clear
();
}
/**
* Third panel - Stream info
* Display all codecs and muxers info that we could gather.
**/
InfoPanel
::
InfoPanel
(
QWidget
*
parent
,
intf_thread_t
*
_p_intf
)
:
QWidget
(
parent
),
p_intf
(
_p_intf
)
{
QGridLayout
*
layout
=
new
QGridLayout
(
this
);
QList
<
QTreeWidgetItem
*>
items
;
QLabel
*
topLabel
=
new
QLabel
(
qtr
(
"Information about what your media or"
" stream is made of.
\n
Muxer, Audio and Video Codecs, Subtitles "
"are shown."
)
);
topLabel
->
setWordWrap
(
true
);
layout
->
addWidget
(
topLabel
,
0
,
0
);
InfoTree
=
new
QTreeWidget
(
this
);
InfoTree
->
setColumnCount
(
1
);
InfoTree
->
header
()
->
hide
();
layout
->
addWidget
(
InfoTree
,
1
,
0
);
}
InfoPanel
::~
InfoPanel
()
{
}
/**
* Update the Codecs information on parent->update()
**/
void
InfoPanel
::
update
(
input_item_t
*
p_item
)
{
InfoTree
->
clear
();
QTreeWidgetItem
*
current_item
=
NULL
;
QTreeWidgetItem
*
child_item
=
NULL
;
for
(
int
i
=
0
;
i
<
p_item
->
i_categories
;
i
++
)
{
current_item
=
new
QTreeWidgetItem
();
current_item
->
setText
(
0
,
qfu
(
p_item
->
pp_categories
[
i
]
->
psz_name
)
);
InfoTree
->
addTopLevelItem
(
current_item
);
for
(
int
j
=
0
;
j
<
p_item
->
pp_categories
[
i
]
->
i_infos
;
j
++
)
{
child_item
=
new
QTreeWidgetItem
();
child_item
->
setText
(
0
,
qfu
(
p_item
->
pp_categories
[
i
]
->
pp_infos
[
j
]
->
psz_name
)
+
": "
+
qfu
(
p_item
->
pp_categories
[
i
]
->
pp_infos
[
j
]
->
psz_value
));
/* Second Panel - Stats */
current_item
->
addChild
(
child_item
);
}
InfoTree
->
setItemExpanded
(
current_item
,
true
);
}
}
InputStatsPanel
::
InputStatsPanel
(
QWidget
*
parent
,
intf_thread_t
*
_p_intf
)
:
QWidget
(
parent
),
p_intf
(
_p_intf
)
/**
* Clear the tree
**/
void
InfoPanel
::
clear
()
{
InfoTree
->
clear
();
}
/**
* Save all the information to a file
* Not yet implemented.
**/
/*
void InfoPanel::saveCodecsInfo()
{
}
*/
/**
* Fourth Panel - Stats
* Displays the Statistics for reading/streaming/encoding/displaying in a tree
*/
InputStatsPanel
::
InputStatsPanel
(
QWidget
*
parent
,
intf_thread_t
*
_p_intf
)
:
QWidget
(
parent
),
p_intf
(
_p_intf
)
{
QGridLayout
*
layout
=
new
QGridLayout
(
this
);
StatsTree
=
new
QTreeWidget
(
this
);
QList
<
QTreeWidgetItem
*>
items
;
QLabel
*
topLabel
=
new
QLabel
(
qtr
(
"Various statistics about the current"
" media or stream.
\n
Played and streamed info are shown."
)
);
topLabel
->
setWordWrap
(
true
);
layout
->
addWidget
(
topLabel
,
0
,
0
);
StatsTree
=
new
QTreeWidget
(
this
);
StatsTree
->
setColumnCount
(
3
);
StatsTree
->
header
()
->
hide
();
...
...
@@ -353,6 +463,9 @@ InputStatsPanel::~InputStatsPanel()
{
}
/**
* Update the Statistics
**/
void
InputStatsPanel
::
update
(
input_item_t
*
p_item
)
{
vlc_mutex_lock
(
&
p_item
->
p_stats
->
lock
);
...
...
@@ -393,57 +506,4 @@ void InputStatsPanel::clear()
{
}
/* Third panel - Stream info */
InfoPanel
::
InfoPanel
(
QWidget
*
parent
,
intf_thread_t
*
_p_intf
)
:
QWidget
(
parent
),
p_intf
(
_p_intf
)
{
QGridLayout
*
layout
=
new
QGridLayout
(
this
);
InfoTree
=
new
QTreeWidget
(
this
);
QList
<
QTreeWidgetItem
*>
items
;
QLabel
*
topLabel
=
new
QLabel
(
qtr
(
"Information about what your media or"
" stream is made of.
\n
Muxer, Audio and Video Codecs, Subtitles "
"are shown."
)
);
topLabel
->
setWordWrap
(
true
);
layout
->
addWidget
(
topLabel
,
0
,
0
);
InfoTree
->
setColumnCount
(
1
);
InfoTree
->
header
()
->
hide
();
layout
->
addWidget
(
InfoTree
,
1
,
0
);
}
InfoPanel
::~
InfoPanel
()
{
}
void
InfoPanel
::
update
(
input_item_t
*
p_item
)
{
InfoTree
->
clear
();
QTreeWidgetItem
*
current_item
=
NULL
;
QTreeWidgetItem
*
child_item
=
NULL
;
for
(
int
i
=
0
;
i
<
p_item
->
i_categories
;
i
++
)
{
current_item
=
new
QTreeWidgetItem
();
current_item
->
setText
(
0
,
qfu
(
p_item
->
pp_categories
[
i
]
->
psz_name
)
);
InfoTree
->
addTopLevelItem
(
current_item
);
for
(
int
j
=
0
;
j
<
p_item
->
pp_categories
[
i
]
->
i_infos
;
j
++
)
{
child_item
=
new
QTreeWidgetItem
();
child_item
->
setText
(
0
,
qfu
(
p_item
->
pp_categories
[
i
]
->
pp_infos
[
j
]
->
psz_name
)
+
": "
+
qfu
(
p_item
->
pp_categories
[
i
]
->
pp_infos
[
j
]
->
psz_value
));
current_item
->
addChild
(
child_item
);
}
InfoTree
->
setItemExpanded
(
current_item
,
true
);
}
}
void
InfoPanel
::
clear
()
{
InfoTree
->
clear
();
}
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