]> git.sesse.net Git - vlc/blobdiff - modules/gui/qt4/qt4.cpp
Add a missing word.
[vlc] / modules / gui / qt4 / qt4.cpp
index 6d87172bcc254b6d681a50e0d1d8dcbc1ac421bb..8880e4546980d81f6238a54c69e64111285798a0 100644 (file)
@@ -21,6 +21,9 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  *****************************************************************************/
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
 
 #include <QApplication>
 #include <QLocale>
@@ -32,6 +35,7 @@
 #include "dialogs_provider.hpp"
 #include "input_manager.hpp"
 #include "main_interface.hpp"
+#include "dialogs/help.hpp" /* update */
 
 #ifdef HAVE_X11_XLIB_H
 #include <X11/Xlib.h>
@@ -53,16 +57,9 @@ static void ShowDialog   ( intf_thread_t *, int, int, intf_dialog_args_t * );
 /*****************************************************************************
  * Module descriptor
  *****************************************************************************/
-#define ALWAYS_VIDEO_TEXT N_( "Always show an area for information when " \
-                              "no video is played" )
-#define ALWAYS_VIDEO_LONGTEXT N_( "Start VLC with a cone image, and " \
-                                  "use this zone to show information as " \
-                                  "lyrics, album arts or visualisation " \
-                                  " when there is no video track." )
-
 #define ADVANCED_PREFS_TEXT N_( "Show advanced prefs over simple ones" )
-#define ADVANCED_PREFS_LONGTEXT N_( "Show advanced preferences and not simple " \
-                                    "preferences when opening the preferences " \
+#define ADVANCED_PREFS_LONGTEXT N_( "Show advanced preferences and not simple "\
+                                    "preferences when opening the preferences "\
                                     "dialog." )
 
 #define SYSTRAY_TEXT N_( "Systray icon" )
@@ -99,14 +96,14 @@ static void ShowDialog   ( intf_thread_t *, int, int, intf_dialog_args_t * );
 #define SHOWFLAGS_TEXT N_( "Define what columns to show in playlist window" )
 #define SHOWFLAGS_LONGTEXT N_( "Enter the sum of the options that you want: \n" \
                                "Title: 1; Duration: 2; Artist: 4; Genre: 8; " \
-                               "Copyright: 16; Collection/album: 32; Rating: 256." )
+                           "Copyright: 16; Collection/album: 32; Rating: 256." )
 
 #define ERROR_TEXT N_( "Show unimportant error and warnings dialogs" )
-#define MINIMAL_TEXT N_( "Start in minimal view (menus hidden)." )
 
 #define UPDATER_TEXT N_( "Activate the updates availability notification" )
 #define UPDATER_LONGTEXT N_( "Activate the automatic notification of new " \
                             "versions of the software. It runs once a week." )
+#define UPDATER_DAYS_TEXT N_("Number of days between two update checks")
 
 #define COMPLETEVOL_TEXT N_( "Allow the volume to be set to 400%" )
 #define COMPLETEVOL_LONGTEXT N_( "Allow the volume to have range from 0% to " \
@@ -118,6 +115,25 @@ static void ShowDialog   ( intf_thread_t *, int, int, intf_dialog_args_t * );
 
 #define PRIVACY_TEXT N_( "Ask for network policy at start" )
 
+
+#define VIEWDETAIL_TEXT N_( "Show the opening dialog view in detail mode" )
+
+#define QT_MODE_TEXT N_( "Selection of the starting mode and look " )
+#define QT_MODE_LONGTEXT N_( "Start VLC with:\n" \
+                             " - normal mode\n"  \
+                             " - a zone always present to show information" \
+                                  "as lyrics, album arts...\n" \
+                             " - minimal mode with limited controls" )
+
+#define QT_NORMAL_MODE_TEXT N_( "Classic look" )
+#define QT_ALWAYS_VIDEO_MODE_TEXT N_( "Complete look with information area" )
+#define QT_MINIMAL_MODE_TEXT N_( "Minimal look with no menus" )
+
+static int i_mode_list[] =
+    { QT_NORMAL_MODE, QT_ALWAYS_VIDEO_MODE, QT_MINIMAL_MODE };
+static const char *psz_mode_list_text[] =
+    { QT_NORMAL_MODE_TEXT, QT_ALWAYS_VIDEO_MODE_TEXT, QT_MINIMAL_MODE_TEXT };
+
 vlc_module_begin();
     set_shortname( (char *)"Qt" );
     set_description( (char*)_("Qt interface") );
@@ -132,10 +148,9 @@ vlc_module_begin();
         set_description( "Dialogs provider" );
         set_capability( "dialogs provider", 51 );
 
-        add_bool( "qt-always-video", VLC_FALSE, NULL, ALWAYS_VIDEO_TEXT,
-                ALWAYS_VIDEO_LONGTEXT, VLC_TRUE );
-        add_bool( "qt-minimal-view", VLC_FALSE, NULL, MINIMAL_TEXT,
-                MINIMAL_TEXT, VLC_TRUE );
+        add_integer( "qt-display-mode", QT_NORMAL_MODE, NULL,
+                     QT_MODE_TEXT, QT_MODE_LONGTEXT, VLC_FALSE );
+            change_integer_list( i_mode_list, psz_mode_list_text, 0 );
 
         add_bool( "qt-notification", VLC_TRUE, NULL, NOTIFICATION_TEXT,
                   NOTIFICATION_LONGTEXT, VLC_FALSE );
@@ -168,6 +183,8 @@ vlc_module_begin();
 #ifdef UPDATE_CHECK
         add_bool( "qt-updates-notif", VLC_TRUE, NULL, UPDATER_TEXT,
                 UPDATER_LONGTEXT, VLC_FALSE );
+        add_integer( "qt-updates-days", 14, NULL, UPDATER_DAYS_TEXT,
+                UPDATER_DAYS_TEXT, VLC_FALSE );
 #endif
 
         add_integer( "qt-pl-showflags",
@@ -177,8 +194,12 @@ vlc_module_begin();
                 SHOWFLAGS_LONGTEXT, VLC_TRUE );
             change_autosave();
 
-        add_bool( "privacy-ask", VLC_TRUE, NULL, PRIVACY_TEXT, PRIVACY_TEXT,
+        add_bool( "qt-open-detail", VLC_FALSE, NULL, VIEWDETAIL_TEXT,
+                VIEWDETAIL_TEXT, VLC_FALSE );
+
+        add_bool( "qt-privacy-ask", VLC_TRUE, NULL, PRIVACY_TEXT, PRIVACY_TEXT,
                 VLC_FALSE );
+
         set_callbacks( OpenDialogs, Close );
 vlc_module_end();
 
@@ -262,13 +283,13 @@ static void Init( intf_thread_t *p_intf )
 
     Q_INIT_RESOURCE( vlc );
 
-#ifndef WIN32
+#if !defined(WIN32) && !defined(__APPLE__)
     /* KLUDGE:
      * disables icon theme use because that makes Cleanlooks style bug
      * because it asks gconf for some settings that timeout because of threads
      * see commits 21610 21622 21654 for reference */
 
-    /* If you are under KDE, Xfce or e17, you should comment this line */
+    /* If you don't have a gconftool-2 binary, you should comment this line */
     QApplication::setDesktopSettingsAware( false );
 #endif
 
@@ -293,6 +314,7 @@ static void Init( intf_thread_t *p_intf )
     else
         vlc_thread_ready( p_intf );
 
+
 #ifdef ENABLE_NLS
     // Translation - get locale
     QLocale ql = QLocale::system();
@@ -324,6 +346,26 @@ static void Init( intf_thread_t *p_intf )
     /* Last settings */
     app->setQuitOnLastWindowClosed( false );
 
+    /*        retrieve last known path used in file browsing */
+    char *psz_path = config_GetPsz( p_intf, "qt-filedialog-path" );
+    p_intf->p_sys->psz_filepath = EMPTY_STR( psz_path ) ? psz_path
+                           : p_intf->p_libvlc->psz_homedir;
+
+#ifdef UPDATE_CHECK
+    if( config_GetInt( p_intf, "qt-updates-notif" ) )
+    {
+        int interval = config_GetInt( p_intf, "qt-updates-days" );
+        QSettings settings( "vlc", "vlc-qt-interface" );
+        if( QDate::currentDate() > settings.value( "updatedate" ).toDate().addDays( interval ) )
+        {
+            msg_Dbg( p_intf, "Someone said I need to check updates" );
+            /* The constructor of the update Dialog will do the 1st request */
+            UpdateDialog::getInstance( p_intf );
+            settings.setValue( "updatedate", QDate::currentDate() );
+        }
+    }
+#endif
+
     /* Launch */
     app->exec();
 
@@ -340,6 +382,9 @@ static void Init( intf_thread_t *p_intf )
     /* Destroy the MainInputManager */
     MainInputManager::killInstance();
 
+    config_PutPsz( p_intf, "qt-filedialog-path", p_intf->p_sys->psz_filepath );
+    free( psz_path );
+
     delete app;
 }