From 73424dcfb59e2698b793bb71b62a736e85511357 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Kempf Date: Sat, 24 Nov 2007 04:25:33 +0000 Subject: [PATCH] Qt4 - Add a dialog at firststart to ask about the privacy policy. --- .../qt4/components/preferences_widgets.hpp | 4 +- modules/gui/qt4/main_interface.cpp | 85 ++++++++++++++++++- modules/gui/qt4/main_interface.hpp | 2 + modules/gui/qt4/qt4.cpp | 4 + 4 files changed, 92 insertions(+), 3 deletions(-) diff --git a/modules/gui/qt4/components/preferences_widgets.hpp b/modules/gui/qt4/components/preferences_widgets.hpp index 486909bb8c..bb67adf80a 100644 --- a/modules/gui/qt4/components/preferences_widgets.hpp +++ b/modules/gui/qt4/components/preferences_widgets.hpp @@ -23,8 +23,8 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. *****************************************************************************/ -#ifndef _INFOPANELS_H_ -#define _INFOPANELS_H_ +#ifndef _PREFERENCESWIDGETS_H_ +#define _PREFERENCESWIDGETS_H_ #include diff --git a/modules/gui/qt4/main_interface.cpp b/modules/gui/qt4/main_interface.cpp index 379887faf5..5976b86174 100644 --- a/modules/gui/qt4/main_interface.cpp +++ b/modules/gui/qt4/main_interface.cpp @@ -32,6 +32,7 @@ #include "dialogs/playlist.hpp" #include "menus.hpp" + #include #include #include @@ -46,6 +47,7 @@ #include #include #include +#include #include #include @@ -95,6 +97,23 @@ MainInterface::MainInterface( intf_thread_t *_p_intf ) : QVLCMW( _p_intf ) embeddedPlaylistWasActive = videoIsActive = false; input_name = ""; + /* Ask for the network policy on first startup */ + if( config_GetInt( p_intf, "privacy-ask") ) + { + QList controls; + privacyDialog( controls ); + + QList::Iterator i; + for( i = controls.begin() ; i != controls.end() ; i++ ) + { + ConfigControl *c = qobject_cast(*i); + c->doApply( p_intf ); + } + + config_PutInt( p_intf, "privacy-ask" , 0 ); + config_SaveConfigFile( p_intf, NULL ); + } + /** * Configuration and settings **/ @@ -103,7 +122,7 @@ MainInterface::MainInterface( intf_thread_t *_p_intf ) : QVLCMW( _p_intf ) /* Main settings */ setFocusPolicy( Qt::StrongFocus ); - setAcceptDrops(true); + setAcceptDrops( true ); setWindowIcon( QApplication::windowIcon() ); setWindowOpacity( config_GetFloat( p_intf, "qt-opacity" ) ); @@ -120,6 +139,7 @@ MainInterface::MainInterface( intf_thread_t *_p_intf ) : QVLCMW( _p_intf ) visualSelectorEnabled = settings->value( "visual-selector", false ).toBool(); notificationEnabled = config_GetInt( p_intf, "qt-notification" ) ? true : false; + /************************** * UI and Widgets design **************************/ @@ -379,6 +399,69 @@ void MainInterface::handleMainUi( QSettings *settings ) setMinimumSize( PREF_W, addSize.height() ); } + +void MainInterface::privacyDialog( QList controls ) +{ + QDialog *privacy = new QDialog( this ); + + privacy->setWindowTitle( qtr( "Privacy and Network policies" ) ); + + QGridLayout *gLayout = new QGridLayout( privacy ); + + QGroupBox *blabla = new QGroupBox( qtr( "Privacy and Network Warning" ) ); + QGridLayout *blablaLayout = new QGridLayout( blabla ); + QLabel *text = new QLabel( qtr( + "

The VideoLAN Team doesn't like when an application goes online without " + "authorisation.

\n " + "

VLC media player can request limited information on " + "Internet, espically to get CD Covers and songs metadata or to know " + "if updates are available.

\n" + "

VLC media player DOES NOT send or collect ANY information, even anonymously about your " + "usage.

\n" + "

Therefore please check the following options, the default being almost no " + "access on the web.

\n") ); + text->setWordWrap( true ); + text->setTextFormat( Qt::RichText ); + + blablaLayout->addWidget( text, 0, 0 ) ; + + QGroupBox *options = new QGroupBox; + QGridLayout *optionsLayout = new QGridLayout( options ); + + gLayout->addWidget( blabla, 0, 0, 1, 3 ); + gLayout->addWidget( options, 1, 0, 1, 3 ); + module_config_t *p_config; + ConfigControl *control; + int line = 0; + +#define CONFIG_GENERIC( option, type ) \ + p_config = config_FindConfig( VLC_OBJECT(p_intf), option ); \ + if( p_config ) \ + { \ + control = new type ## ConfigControl( VLC_OBJECT(p_intf), \ + p_config, options, false, optionsLayout, line ); \ + } + +#define CONFIG_GENERIC_NOBOOL( option, type ) \ + p_config = config_FindConfig( VLC_OBJECT(p_intf), option ); \ + if( p_config ) \ + { \ + control = new type ## ConfigControl( VLC_OBJECT(p_intf), \ + p_config, options, optionsLayout, line ); \ + } + + CONFIG_GENERIC( "album-art", IntegerList ); line++; + CONFIG_GENERIC_NOBOOL( "fetch-meta", Bool ); line++; + CONFIG_GENERIC_NOBOOL( "qt-updates-notif", Bool ); + + QPushButton *ok = new QPushButton( qtr( "Ok" ) ); + + gLayout->addWidget( ok, 2, 2 ); + + CONNECT( ok, clicked(), privacy, accept() ); + privacy->exec(); +} + void MainInterface::debug() { msg_Dbg( p_intf, "size: %i - %i", controls->size().height(), controls->size().width() ); diff --git a/modules/gui/qt4/main_interface.hpp b/modules/gui/qt4/main_interface.hpp index def9e0e512..6b755405a3 100644 --- a/modules/gui/qt4/main_interface.hpp +++ b/modules/gui/qt4/main_interface.hpp @@ -27,6 +27,7 @@ #include "qt4.hpp" #include "util/qvlcframe.hpp" +#include "components/preferences_widgets.hpp" #include @@ -98,6 +99,7 @@ private: void handleSystray(); void doComponentsUpdate(); void createSystray(); + void privacyDialog( QList controls ); /* Video */ VideoWidget *videoWidget; diff --git a/modules/gui/qt4/qt4.cpp b/modules/gui/qt4/qt4.cpp index 87b0a1bd2f..9b5108d4fd 100644 --- a/modules/gui/qt4/qt4.cpp +++ b/modules/gui/qt4/qt4.cpp @@ -107,6 +107,8 @@ static void ShowDialog ( intf_thread_t *, int, int, intf_dialog_args_t * ); #define BLING_TEXT N_("Use non native buttons and volume slider") +#define PRIVACY_TEXT N_("Ask for network policy at start") + vlc_module_begin(); set_shortname( (char *)"Qt" ); set_description( (char*)_("Qt interface") ); @@ -162,6 +164,8 @@ vlc_module_begin(); VLC_META_ENGINE_DURATION|VLC_META_ENGINE_COLLECTION, NULL, SHOWFLAGS_TEXT, SHOWFLAGS_LONGTEXT, VLC_TRUE ); + add_bool( "privacy-ask", VLC_TRUE, NULL, PRIVACY_TEXT, PRIVACY_TEXT, + VLC_FALSE ); set_callbacks( OpenDialogs, Close ); vlc_module_end(); -- 2.39.2