Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-2-2
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-2-2
Commits
09b9702d
Commit
09b9702d
authored
Dec 10, 2007
by
Rémi Duraffort
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Modify the update system : I will add more functionnality but this is the beginning
parent
1f94c930
Changes
5
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
230 additions
and
1535 deletions
+230
-1535
include/vlc_update.h
include/vlc_update.h
+15
-111
modules/control/rc.c
modules/control/rc.c
+14
-110
modules/gui/qt4/dialogs/help.cpp
modules/gui/qt4/dialogs/help.cpp
+27
-126
modules/gui/qt4/dialogs/help.hpp
modules/gui/qt4/dialogs/help.hpp
+8
-13
src/misc/update.c
src/misc/update.c
+166
-1175
No files found.
include/vlc_update.h
View file @
09b9702d
...
@@ -36,45 +36,11 @@
...
@@ -36,45 +36,11 @@
* @{
* @{
*/
*/
#define UPDATE_FILE_TYPE_ALL (~0)
enum
#define UPDATE_FILE_TYPE_NONE 0
#define UPDATE_FILE_TYPE_UNDEF 1
#define UPDATE_FILE_TYPE_INFO 2
#define UPDATE_FILE_TYPE_SOURCE 4
#define UPDATE_FILE_TYPE_BINARY 8
#define UPDATE_FILE_TYPE_PLUGIN 16
#define UPDATE_RELEASE_STATUS_ALL (~0)
#define UPDATE_RELEASE_STATUS_NONE 0
#define UPDATE_RELEASE_STATUS_OLDER 1
#define UPDATE_RELEASE_STATUS_EQUAL 2
#define UPDATE_RELEASE_STATUS_NEWER 4
#define UPDATE_RELEASE_TYPE_STABLE 1
#define UPDATE_RELEASE_TYPE_TESTING 2
#define UPDATE_RELEASE_TYPE_UNSTABLE 4
#define UPDATE_FAIL 0
#define UPDATE_SUCCESS 1
#define UPDATE_NEXT 0
#define UPDATE_PREV 2
#define UPDATE_MIRROR 4
#define UPDATE_RELEASE 8
#define UPDATE_FILE 16
#define UPDATE_RESET 32
/**
* Describes an update file
*/
struct
update_file_t
{
{
int
i_type
;
///< File type
UpdateReleaseStatusOlder
,
char
*
psz_md5
;
///< MD5 hash
UpdateReleaseStatusEqual
,
long
int
l_size
;
///< File size in bytes
UpdateReleaseStatusNewer
char
*
psz_url
;
///< Relative (to a mirror) or absolute url
char
*
psz_description
;
///< Plain text description
};
};
/**
/**
...
@@ -82,32 +48,13 @@ struct update_file_t
...
@@ -82,32 +48,13 @@ struct update_file_t
*/
*/
struct
update_release_t
struct
update_release_t
{
{
char
*
psz_major
;
///< Version major string
int
i_major
;
///< Version major
char
*
psz_minor
;
///< Version minor string
int
i_minor
;
///< Version minor
char
*
psz_revision
;
///< Version revision string
int
i_revision
;
///< Version revision
char
*
psz_extra
;
///< Version extra string
char
*
psz_svnrev
;
///< SVN revision
char
*
psz_extra
;
///< Version extra
char
*
psz_svn_revision
;
///< SVN revision
char
*
psz_url
;
///< Download URL
char
*
psz_desc
;
///< Release description
int
i_type
;
///< Release type
int
i_status
;
///< Release status compared to current VLC version
struct
update_file_t
*
p_files
;
///< Files list
int
i_files
;
///< Number of files in the files list
};
/**
* Describes a mirror
*/
struct
update_mirror_t
{
char
*
psz_name
;
///< Mirror name
char
*
psz_location
;
///< Mirror geographical location
char
*
psz_type
;
///< Mirror type (FTP, HTTP, ...)
char
*
psz_base_url
;
///< Mirror base url
};
};
/**
/**
...
@@ -116,60 +63,17 @@ struct update_mirror_t
...
@@ -116,60 +63,17 @@ struct update_mirror_t
struct
update_t
struct
update_t
{
{
libvlc_int_t
*
p_libvlc
;
libvlc_int_t
*
p_libvlc
;
vlc_mutex_t
lock
;
vlc_mutex_t
lock
;
struct
update_release_t
release
;
///< Release (version)
struct
update_release_t
*
p_releases
;
///< Releases (version) list
int
i_releases
;
///< Number of releases
vlc_bool_t
b_releases
;
///< True if we have a releases list
struct
update_mirror_t
*
p_mirrors
;
///< Mirrors list
int
i_mirrors
;
///< Number of mirrors
vlc_bool_t
b_mirrors
;
///< True if we have a mirrors list
};
};
/**
* The update iterator structure. Usefull to browse the update object seamlessly
*/
struct
update_iterator_t
{
update_t
*
p_u
;
///< Pointer to VLC update object
int
i_r
;
///< Position in the releases list
int
i_f
;
///< Position in the release's files list
int
i_m
;
///< Position in the mirrors list
int
i_t
;
///< File type bitmask
int
i_rs
;
///< Release status bitmask
int
i_rt
;
///< Release type bitmask
struct
update_file_t
file
;
///< Local copy of the current file's information
struct
{
char
*
psz_version
;
///< Version string
char
*
psz_svn_revision
;
///< SVN revision
int
i_status
;
///< Status
int
i_type
;
///< Type
}
release
;
///< Local 'copy' of the current release's information
struct
{
char
*
psz_name
;
///< Name
char
*
psz_location
;
///< Geographical location
char
*
psz_type
;
///< Type (HTTP, FTP, ...)
}
mirror
;
///< Local 'copy' of the current mirror's information
};
#define update_New( a ) __update_New( VLC_OBJECT( a ) )
#define update_New( a ) __update_New( VLC_OBJECT( a ) )
VLC_EXPORT
(
update_t
*
,
__update_New
,
(
vlc_object_t
*
)
);
VLC_EXPORT
(
update_t
*
,
__update_New
,
(
vlc_object_t
*
)
);
VLC_EXPORT
(
void
,
update_Delete
,
(
update_t
*
)
);
VLC_EXPORT
(
void
,
update_Delete
,
(
update_t
*
)
);
VLC_EXPORT
(
void
,
update_Check
,
(
update_t
*
,
vlc_bool_t
)
);
VLC_EXPORT
(
void
,
update_Check
,
(
update_t
*
)
);
VLC_EXPORT
(
int
,
update_CompareReleaseToCurrent
,
(
update_t
*
)
);
VLC_EXPORT
(
update_iterator_t
*
,
update_iterator_New
,
(
update_t
*
)
);
VLC_EXPORT
(
void
,
update_iterator_Delete
,
(
update_iterator_t
*
)
);
VLC_EXPORT
(
unsigned
int
,
update_iterator_Action
,
(
update_iterator_t
*
,
int
)
);
VLC_EXPORT
(
unsigned
int
,
update_iterator_ChooseMirrorAndFile
,
(
update_iterator_t
*
,
int
,
int
,
int
)
);
VLC_EXPORT
(
void
,
update_download
,
(
update_iterator_t
*
,
const
char
*
)
);
/**
/**
* @}
* @}
...
...
modules/control/rc.c
View file @
09b9702d
...
@@ -96,7 +96,7 @@ static int AudioConfig ( vlc_object_t *, char const *,
...
@@ -96,7 +96,7 @@ static int AudioConfig ( vlc_object_t *, char const *,
vlc_value_t
,
vlc_value_t
,
void
*
);
vlc_value_t
,
vlc_value_t
,
void
*
);
static
int
Menu
(
vlc_object_t
*
,
char
const
*
,
static
int
Menu
(
vlc_object_t
*
,
char
const
*
,
vlc_value_t
,
vlc_value_t
,
void
*
);
vlc_value_t
,
vlc_value_t
,
void
*
);
static
void
checkUpdates
(
intf_thread_t
*
p_intf
,
char
*
psz_arg
);
static
void
checkUpdates
(
intf_thread_t
*
p_intf
);
/* Status Callbacks */
/* Status Callbacks */
static
int
TimeOffsetChanged
(
vlc_object_t
*
,
char
const
*
,
static
int
TimeOffsetChanged
(
vlc_object_t
*
,
char
const
*
,
...
@@ -752,7 +752,7 @@ static void Run( intf_thread_t *p_intf )
...
@@ -752,7 +752,7 @@ static void Run( intf_thread_t *p_intf )
}
}
else
if
(
!
strcmp
(
psz_cmd
,
"check-updates"
)
)
else
if
(
!
strcmp
(
psz_cmd
,
"check-updates"
)
)
{
{
checkUpdates
(
p_intf
,
psz_arg
);
checkUpdates
(
p_intf
);
}
}
else
if
(
!
strcmp
(
psz_cmd
,
"key"
)
||
!
strcmp
(
psz_cmd
,
"hotkey"
)
)
else
if
(
!
strcmp
(
psz_cmd
,
"key"
)
||
!
strcmp
(
psz_cmd
,
"hotkey"
)
)
{
{
...
@@ -2105,116 +2105,20 @@ static input_item_t *parse_MRL( intf_thread_t *p_intf, char *psz_mrl )
...
@@ -2105,116 +2105,20 @@ static input_item_t *parse_MRL( intf_thread_t *p_intf, char *psz_mrl )
/*****************************************************************************
/*****************************************************************************
* checkUpdates : check for updates
* checkUpdates : check for updates
****************************************************************************/
****************************************************************************/
static
void
checkUpdates
(
intf_thread_t
*
p_intf
,
char
*
psz_arg
)
static
void
checkUpdates
(
intf_thread_t
*
p_intf
)
{
{
update_iterator_t
*
p_uit
;
update_t
*
p_u
=
update_New
(
p_intf
);
update_t
*
p_u
=
update_New
(
p_intf
);
if
(
p_u
==
NULL
)
return
;
if
(
p_u
==
NULL
)
return
;
p_uit
=
update_iterator_New
(
p_u
);
if
(
p_uit
)
update_Check
(
p_u
);
{
msg_rc
(
"
\n
Checking for updates"
);
int
s
=
0
,
t
=
0
;
if
(
update_CompareReleaseToCurrent
(
p_u
)
==
UpdateReleaseStatusNewer
)
if
(
strstr
(
psz_arg
,
"newer"
)
)
msg_rc
(
"
\n
+----[ VLC %i.%i.%i%s ] "
,
p_u
->
release
.
i_major
,
s
|=
UPDATE_RELEASE_STATUS_NEWER
;
p_u
->
release
.
i_minor
,
if
(
strstr
(
psz_arg
,
"equal"
)
)
p_u
->
release
.
i_revision
,
s
|=
UPDATE_RELEASE_STATUS_EQUAL
;
p_u
->
release
.
psz_extra
);
if
(
strstr
(
psz_arg
,
"older"
)
)
s
|=
UPDATE_RELEASE_STATUS_OLDER
;
if
(
s
)
p_uit
->
i_rs
=
s
;
else
p_uit
->
i_rs
=
UPDATE_RELEASE_STATUS_NEWER
;
if
(
strstr
(
psz_arg
,
"undef"
)
)
t
|=
UPDATE_FILE_TYPE_UNDEF
;
if
(
strstr
(
psz_arg
,
"info"
)
)
t
|=
UPDATE_FILE_TYPE_INFO
;
if
(
strstr
(
psz_arg
,
"source"
)
)
t
|=
UPDATE_FILE_TYPE_SOURCE
;
if
(
strstr
(
psz_arg
,
"binary"
)
)
t
|=
UPDATE_FILE_TYPE_BINARY
;
if
(
strstr
(
psz_arg
,
"plugin"
)
)
t
|=
UPDATE_FILE_TYPE_PLUGIN
;
if
(
t
)
p_uit
->
i_t
=
t
;
update_Check
(
p_u
,
VLC_FALSE
);
update_iterator_Action
(
p_uit
,
UPDATE_MIRROR
);
msg_rc
(
"
\n
Using mirror: %s (%s) [%s]"
,
p_uit
->
mirror
.
psz_name
,
p_uit
->
mirror
.
psz_location
,
p_uit
->
mirror
.
psz_type
);
while
(
(
s
=
update_iterator_Action
(
p_uit
,
UPDATE_FILE
))
!=
UPDATE_FAIL
)
{
char
*
psz_tmp
;
if
(
s
&
UPDATE_RELEASE
)
{
switch
(
p_uit
->
release
.
i_status
)
{
case
UPDATE_RELEASE_STATUS_OLDER
:
psz_tmp
=
strdup
(
"older"
);
break
;
case
UPDATE_RELEASE_STATUS_EQUAL
:
psz_tmp
=
strdup
(
"equal"
);
break
;
case
UPDATE_RELEASE_STATUS_NEWER
:
psz_tmp
=
strdup
(
"newer"
);
break
;
default:
psz_tmp
=
strdup
(
"?!?"
);
break
;
}
msg_rc
(
"
\n
+----[ VLC %s %s (%s) ] "
,
p_uit
->
release
.
psz_version
,
p_uit
->
release
.
psz_svn_revision
,
psz_tmp
);
free
(
psz_tmp
);
}
switch
(
p_uit
->
file
.
i_type
)
{
case
UPDATE_FILE_TYPE_UNDEF
:
psz_tmp
=
strdup
(
"undef"
);
break
;
case
UPDATE_FILE_TYPE_INFO
:
psz_tmp
=
strdup
(
"info"
);
break
;
case
UPDATE_FILE_TYPE_SOURCE
:
psz_tmp
=
strdup
(
"source"
);
break
;
case
UPDATE_FILE_TYPE_BINARY
:
psz_tmp
=
strdup
(
"binary"
);
break
;
case
UPDATE_FILE_TYPE_PLUGIN
:
psz_tmp
=
strdup
(
"plugin"
);
break
;
default:
psz_tmp
=
strdup
(
"?!?"
);
break
;
}
msg_rc
(
"| %s (%s)"
,
p_uit
->
file
.
psz_description
,
psz_tmp
);
free
(
psz_tmp
);
if
(
p_uit
->
file
.
l_size
)
{
if
(
p_uit
->
file
.
l_size
>
1024
*
1024
*
1024
)
asprintf
(
&
psz_tmp
,
"(%ld GB)"
,
p_uit
->
file
.
l_size
/
(
1024
*
1024
*
1024
)
);
if
(
p_uit
->
file
.
l_size
>
1024
*
1024
)
asprintf
(
&
psz_tmp
,
"(%ld MB)"
,
p_uit
->
file
.
l_size
/
(
1024
*
1024
)
);
else
if
(
p_uit
->
file
.
l_size
>
1024
)
asprintf
(
&
psz_tmp
,
"(%ld kB)"
,
p_uit
->
file
.
l_size
/
1024
);
else
asprintf
(
&
psz_tmp
,
"(%ld B)"
,
p_uit
->
file
.
l_size
);
}
else
else
{
msg_rc
(
"
\n
+----Last version"
);
psz_tmp
=
strdup
(
""
);
}
msg_rc
(
"| %s %s"
,
p_uit
->
file
.
psz_url
,
psz_tmp
);
msg_rc
(
"+----"
);
free
(
psz_tmp
);
}
msg_rc
(
""
);
update_iterator_Delete
(
p_uit
);
}
update_Delete
(
p_u
);
update_Delete
(
p_u
);
}
}
modules/gui/qt4/dialogs/help.cpp
View file @
09b9702d
...
@@ -35,15 +35,12 @@
...
@@ -35,15 +35,12 @@
#include <QFile>
#include <QFile>
#include <QLabel>
#include <QLabel>
#include <QString>
#include <QString>
#include <QCheckBox>
#include <QGroupBox>
#include <QDialogButtonBox>
#include <QDialogButtonBox>
#include <QFileDialog>
HelpDialog
*
HelpDialog
::
instance
=
NULL
;
HelpDialog
*
HelpDialog
::
instance
=
NULL
;
HelpDialog
::
HelpDialog
(
intf_thread_t
*
_p_intf
)
:
QVLCFrame
(
_p_intf
)
HelpDialog
::
HelpDialog
(
intf_thread_t
*
_p_intf
)
:
QVLCFrame
(
_p_intf
)
{
{
setWindowTitle
(
qtr
(
"Help"
)
);
setWindowTitle
(
qtr
(
"Help"
)
);
resize
(
600
,
560
);
resize
(
600
,
560
);
...
@@ -105,13 +102,13 @@ AboutDialog::AboutDialog( intf_thread_t *_p_intf) : QVLCFrame( _p_intf )
...
@@ -105,13 +102,13 @@ AboutDialog::AboutDialog( intf_thread_t *_p_intf) : QVLCFrame( _p_intf )
+
qtr
(
"You are using the new Qt4 Interface.
\n
"
)
+
qtr
(
"You are using the new Qt4 Interface.
\n
"
)
+
qtr
(
"Compiled by "
)
+
qfu
(
VLC_CompileBy
()
)
+
"@"
+
qtr
(
"Compiled by "
)
+
qfu
(
VLC_CompileBy
()
)
+
"@"
+
qfu
(
VLC_CompileDomain
()
)
+
".
\n
"
+
qfu
(
VLC_CompileDomain
()
)
+
".
\n
"
+
"Compiler: "
+
qfu
(
VLC_Compiler
()
)
+
".
\n
"
+
"Compiler: "
+
qfu
(
VLC_Compiler
()
)
+
".
\n
"
+
qtr
(
"Based on SVN revision: "
)
+
qfu
(
VLC_Changeset
()
)
+
qtr
(
"Based on SVN revision: "
)
+
qfu
(
VLC_Changeset
()
)
+
".
\n\n
"
+
".
\n\n
"
+
qtr
(
"This program comes with NO WARRANTY, to the extent "
+
qtr
(
"This program comes with NO WARRANTY, to the extent "
"permitted by the law; read the distribution tab.
\n\n
"
)
"permitted by the law; read the distribution tab.
\n\n
"
)
+
"The VideoLAN team <videolan@videolan.org>
\n
"
+
"The VideoLAN team <videolan@videolan.org>
\n
"
"http://www.videolan.org/
\n
"
)
;
"http://www.videolan.org/
\n
"
)
;
infoLabel
->
setWordWrap
(
infoLabel
);
infoLabel
->
setWordWrap
(
infoLabel
);
QLabel
*
iconVLC2
=
new
QLabel
;
QLabel
*
iconVLC2
=
new
QLabel
;
...
@@ -129,7 +126,7 @@ AboutDialog::AboutDialog( intf_thread_t *_p_intf) : QVLCFrame( _p_intf )
...
@@ -129,7 +126,7 @@ AboutDialog::AboutDialog( intf_thread_t *_p_intf) : QVLCFrame( _p_intf )
QWidget
*
thanksWidget
=
new
QWidget
(
this
);
QWidget
*
thanksWidget
=
new
QWidget
(
this
);
QVBoxLayout
*
thanksLayout
=
new
QVBoxLayout
(
thanksWidget
);
QVBoxLayout
*
thanksLayout
=
new
QVBoxLayout
(
thanksWidget
);
QLabel
*
thanksLabel
=
new
QLabel
(
qtr
(
"We would like to thank the whole "
QLabel
*
thanksLabel
=
new
QLabel
(
qtr
(
"We would like to thank the whole "
"community, the testers, our users and the following people "
"community, the testers, our users and the following people "
"(and the missing ones...) for their collaboration to "
"(and the missing ones...) for their collaboration to "
"provide the best software."
)
);
"provide the best software."
)
);
...
@@ -165,45 +162,32 @@ void AboutDialog::close()
...
@@ -165,45 +162,32 @@ void AboutDialog::close()
UpdateDialog
*
UpdateDialog
::
instance
=
NULL
;
UpdateDialog
*
UpdateDialog
::
instance
=
NULL
;
UpdateDialog
::
UpdateDialog
(
intf_thread_t
*
_p_intf
)
:
QVLCFrame
(
_p_intf
)
UpdateDialog
::
UpdateDialog
(
intf_thread_t
*
_p_intf
)
:
QVLCFrame
(
_p_intf
)
{
{
setWindowTitle
(
qtr
(
"Update"
)
);
setWindowTitle
(
qtr
(
"Update"
)
);
resize
(
230
,
18
0
);
resize
(
320
,
12
0
);
QGridLayout
*
layout
=
new
QGridLayout
(
this
);
QGridLayout
*
layout
=
new
QGridLayout
(
this
);
updateBrowser
=
new
QTextBrowser
(
this
);
updateBrowser
->
setOpenExternalLinks
(
true
);
updateBrowser
->
setHtml
(
qtr
(
"<html><head><meta http-equiv=
\"
Content-Type
\"
content=
\"
text/html; charset=
\"
utf-8
\"
/></head> \
<body><center>Push the update button to get the updates</center></body></html>"
)
);
QPushButton
*
closeButton
=
new
QPushButton
(
qtr
(
"&Close"
)
);
QPushButton
*
closeButton
=
new
QPushButton
(
qtr
(
"&Close"
)
);
updateButton
=
new
QPushButton
(
qtr
(
"&Update List"
)
);
QPushButton
*
updateButton
=
new
QPushButton
(
qtr
(
"&Update List"
)
);
updateButton
->
setDefault
(
true
);
updateButton
->
setDefault
(
true
);
QDialogButtonBox
*
buttonBox
=
new
QDialogButtonBox
(
Qt
::
Horizontal
);
QDialogButtonBox
*
buttonBox
=
new
QDialogButtonBox
(
Qt
::
Horizontal
);
buttonBox
->
addButton
(
updateButton
,
QDialogButtonBox
::
ActionRole
);
buttonBox
->
addButton
(
updateButton
,
QDialogButtonBox
::
ActionRole
);
buttonBox
->
addButton
(
closeButton
,
QDialogButtonBox
::
AcceptRole
);
buttonBox
->
addButton
(
closeButton
,
QDialogButtonBox
::
AcceptRole
);
QGroupBox
*
checkGroup
=
new
QGroupBox
(
qtr
(
"Select Package"
)
);
layout
->
addWidget
(
updateBrowser
,
0
,
0
);
QGridLayout
*
checkLayout
=
new
QGridLayout
(
checkGroup
);
checkInfo
=
new
QCheckBox
(
qtr
(
"Information"
)
);
checkSource
=
new
QCheckBox
(
qtr
(
"Sources"
)
);
checkBinary
=
new
QCheckBox
(
qtr
(
"Binary"
)
);
checkPlugin
=
new
QCheckBox
(
qtr
(
"Plugin"
)
);
checkInfo
->
setDisabled
(
true
);
checkSource
->
setDisabled
(
true
);
checkBinary
->
setDisabled
(
true
);
checkPlugin
->
setDisabled
(
true
);
checkLayout
->
addWidget
(
checkInfo
,
0
,
0
);
checkLayout
->
addWidget
(
checkSource
,
1
,
0
);
checkLayout
->
addWidget
(
checkBinary
,
2
,
0
);
checkLayout
->
addWidget
(
checkPlugin
,
3
,
0
);
layout
->
addWidget
(
checkGroup
,
0
,
0
);
layout
->
addWidget
(
buttonBox
,
1
,
0
);
layout
->
addWidget
(
buttonBox
,
1
,
0
);
BUTTONACT
(
updateButton
,
updateOrUpload
()
);
BUTTONACT
(
updateButton
,
updateOrUpload
()
);
BUTTONACT
(
closeButton
,
close
()
);
BUTTONACT
(
closeButton
,
close
()
);
p_update
=
update_New
(
_p_intf
);
p_update
=
update_New
(
_p_intf
);
b_updated
=
false
;
}
}
UpdateDialog
::~
UpdateDialog
()
UpdateDialog
::~
UpdateDialog
()
...
@@ -218,101 +202,18 @@ void UpdateDialog::close()
...
@@ -218,101 +202,18 @@ void UpdateDialog::close()
void
UpdateDialog
::
updateOrUpload
()
void
UpdateDialog
::
updateOrUpload
()
{
{
if
(
!
p_update
)
return
;
update_Check
(
p_update
);
if
(
!
b_updated
)
{
update_Check
(
p_update
,
VLC_FALSE
);
update_iterator_t
*
p_updateit
=
update_iterator_New
(
p_update
);
bool
b_download
=
false
;
if
(
p_updateit
)
{
p_updateit
->
i_rs
=
UPDATE_RELEASE_STATUS_NEWER
;
p_updateit
->
i_t
=
UPDATE_FILE_TYPE_ALL
;
update_iterator_Action
(
p_updateit
,
UPDATE_MIRROR
);
while
(
update_iterator_Action
(
p_updateit
,
UPDATE_FILE
)
!=
UPDATE_FAIL
)
{
switch
(
p_updateit
->
file
.
i_type
)
{
case
UPDATE_FILE_TYPE_INFO
:
checkInfo
->
setText
(
qtr
(
"Information"
)
+
" ("
+
qfu
(
p_updateit
->
release
.
psz_version
)
+
")"
);
checkInfo
->
setDisabled
(
false
);
checkInfo
->
setCheckState
(
Qt
::
Checked
);
b_download
=
true
;
break
;
case
UPDATE_FILE_TYPE_SOURCE
:
checkSource
->
setText
(
qtr
(
"Source"
)
+
" ("
+
qfu
(
p_updateit
->
release
.
psz_version
)
+
")"
);
checkSource
->
setDisabled
(
false
);
checkSource
->
setCheckState
(
Qt
::
Checked
);
b_download
=
true
;
break
;
case
UPDATE_FILE_TYPE_BINARY
:
checkBinary
->
setText
(
qtr
(
"Binary"
)
+
" ("
+
qfu
(
p_updateit
->
release
.
psz_version
)
+
")"
);
checkBinary
->
setDisabled
(
false
);
checkBinary
->
setCheckState
(
Qt
::
Checked
);
b_download
=
true
;
break
;
case
UPDATE_FILE_TYPE_PLUGIN
:
checkPlugin
->
setText
(
qtr
(
"Plugin"
)
+
" ("
+
qfu
(
p_updateit
->
release
.
psz_version
)
+
")"
);
checkPlugin
->
setDisabled
(
false
);
checkPlugin
->
setCheckState
(
Qt
::
Checked
);
b_download
=
true
;
break
;
default:
break
;
}
}
}
if
(
b_download
)
{
updateButton
->
setText
(
qtr
(
"Download"
)
);
b_updated
=
true
;
}
update_iterator_Delete
(
p_updateit
);
}
else
{
update_iterator_t
*
p_updateit
=
update_iterator_New
(
p_update
);
bool
b_download
=
false
;
if
(
p_updateit
)
{
QString
saveDir
=
QFileDialog
::
getExistingDirectory
(
this
,
qtr
(
"Choose a directory..."
),
qfu
(
p_intf
->
p_libvlc
->
psz_homedir
)
);
p_updateit
->
i_rs
=
UPDATE_RELEASE_STATUS_NEWER
;
p_updateit
->
i_t
=
UPDATE_FILE_TYPE_ALL
;
update_iterator_Action
(
p_updateit
,
UPDATE_MIRROR
);
while
(
update_iterator_Action
(
p_updateit
,
UPDATE_FILE
)
!=
UPDATE_FAIL
)
if
(
update_CompareReleaseToCurrent
(
p_update
)
==
UpdateReleaseStatusNewer
)
{
{
b_download
=
false
;
updateBrowser
->
setHtml
(
qtr
(
"<html><head><meta http-equiv=
\"
Content-Type
\"
content=
\"
text/html; charset=
\"
utf-8
\"
/></head> \
switch
(
p_updateit
->
file
.
i_type
)
<body><center><p>"
)
+
qtu
(
(
QString
)
p_update
->
release
.
psz_desc
)
+
{
qtr
(
"</p>You can download the latest version of VLC <a href=
\"
"
)
+
case
UPDATE_FILE_TYPE_INFO
:
qtu
(
(
QString
)
p_update
->
release
.
psz_url
)
+
qtr
(
"
\"
>here</a></center></body></html>"
)
);
if
(
checkInfo
->
isChecked
()
)
b_download
=
true
;
break
;
case
UPDATE_FILE_TYPE_SOURCE
:
if
(
checkSource
->
isChecked
()
)
b_download
=
true
;
break
;
case
UPDATE_FILE_TYPE_BINARY
:
if
(
checkBinary
->
isChecked
()
)
b_download
=
true
;
break
;
case
UPDATE_FILE_TYPE_PLUGIN
:
if
(
checkPlugin
->
isChecked
()
)
b_download
=
true
;
break
;
default:
break
;
}
}
if
(
b_download
)
else
{
{
QString
strFileName
=
p_updateit
->
file
.
psz_url
;
updateBrowser
->
setHtml
(
"<html><head><meta http-equiv=
\"
Content-Type
\"
content=
\"
text/html; charset=
\"
utf-8
\"
/></head> \
strFileName
.
remove
(
0
,
strFileName
.
lastIndexOf
(
"/"
)
+
1
);
<body><center>You have the latest version of VLC.</center></body></html>"
);
update_download
(
p_updateit
,
qtu
(
(
saveDir
+
strFileName
)
)
);
}
}
}
}
}
}
}
modules/gui/qt4/dialogs/help.hpp
View file @
09b9702d
...
@@ -29,7 +29,7 @@
...
@@ -29,7 +29,7 @@
#include "util/qvlcframe.hpp"
#include "util/qvlcframe.hpp"
class
QPushButton
;
class
QPushButton
;
class
Q
CheckBox
;
class
Q
TextBrowser
;
class
HelpDialog
:
public
QVLCFrame
class
HelpDialog
:
public
QVLCFrame
{
{
...
@@ -44,7 +44,7 @@ public:
...
@@ -44,7 +44,7 @@ public:
virtual
~
HelpDialog
();
virtual
~
HelpDialog
();
private:
private:
HelpDialog
(
intf_thread_t
*
);
HelpDialog
(
intf_thread_t
*
);
static
HelpDialog
*
instance
;
static
HelpDialog
*
instance
;
public
slots
:
public
slots
:
void
close
();
void
close
();
...
@@ -58,13 +58,13 @@ public:
...
@@ -58,13 +58,13 @@ public:
static
AboutDialog
*
getInstance
(
intf_thread_t
*
p_intf
)
static
AboutDialog
*
getInstance
(
intf_thread_t
*
p_intf
)
{
{
if
(
!
instance
)
if
(
!
instance
)
instance
=
new
AboutDialog
(
p_intf
);
instance
=
new
AboutDialog
(
p_intf
);
return
instance
;
return
instance
;
}
}
virtual
~
AboutDialog
();
virtual
~
AboutDialog
();
private:
private:
AboutDialog
(
intf_thread_t
*
);
AboutDialog
(
intf_thread_t
*
);
static
AboutDialog
*
instance
;
static
AboutDialog
*
instance
;
public
slots
:
public
slots
:
void
close
();
void
close
();
...
@@ -77,22 +77,17 @@ class UpdateDialog : public QVLCFrame
...
@@ -77,22 +77,17 @@ class UpdateDialog : public QVLCFrame
public:
public:
static
UpdateDialog
*
getInstance
(
intf_thread_t
*
p_intf
)
static
UpdateDialog
*
getInstance
(
intf_thread_t
*
p_intf
)
{
{
if
(
!
instance
)
if
(
!
instance
)
instance
=
new
UpdateDialog
(
p_intf
);
instance
=
new
UpdateDialog
(
p_intf
);
return
instance
;
return
instance
;
}
}
virtual
~
UpdateDialog
();
virtual
~
UpdateDialog
();
private:
private:
UpdateDialog
(
intf_thread_t
*
);
UpdateDialog
(
intf_thread_t
*
);
static
UpdateDialog
*
instance
;
static
UpdateDialog
*
instance
;
QPushButton
*
updateButton
;
QCheckBox
*
checkInfo
;
QCheckBox
*
checkSource
;
QCheckBox
*
checkBinary
;
QCheckBox
*
checkPlugin
;
update_t
*
p_update
;
update_t
*
p_update
;
bool
b_updated
;
QTextBrowser
*
updateBrowser
;
private
slots
:
private
slots
:
void
close
();
void
close
();
void
updateOrUpload
();
void
updateOrUpload
();
...
...
src/misc/update.c
View file @
09b9702d
This diff is collapsed.
Click to expand it.
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