Qt: Use a QFontComboBox instead of a QFontDialog.
authorJean-Baptiste Kempf <jb@videolan.org>
Mon, 3 Aug 2009 19:07:43 +0000 (21:07 +0200)
committerJean-Baptiste Kempf <jb@videolan.org>
Mon, 3 Aug 2009 19:08:48 +0000 (21:08 +0200)
modules/gui/qt4/components/preferences_widgets.cpp
modules/gui/qt4/components/preferences_widgets.hpp
modules/gui/qt4/components/simple_preferences.cpp
modules/gui/qt4/ui/sprefs_subtitles.ui

index 24968a4..8c6f26c 100644 (file)
@@ -368,27 +368,37 @@ void DirectoryConfigControl::updateField()
     text->setText( toNativeSepNoSlash( dir ) );
 }
 
-#include <QFontDialog>
+#include <QFontComboBox>
 
 /********* String / Font **********/
 FontConfigControl::FontConfigControl( vlc_object_t *_p_this,
-                        module_config_t *_p_item, QWidget *_p_widget,
-                        QGridLayout *_p_layout, int& _int) :
-     FileConfigControl( _p_this, _p_item, _p_widget, _p_layout, _int)
-{}
+                        module_config_t *_p_item, QWidget *_parent,
+                        QGridLayout *_p_layout, int& line) :
+     VStringConfigControl( _p_this, _p_item, _parent )
+{
+    label = new QLabel( qtr(p_item->psz_text) );
+    font = new QFontComboBox( _parent );
+    if( !_p_layout )
+    {
+        QHBoxLayout *layout = new QHBoxLayout();
+        layout->addWidget( label, 0 );
+        layout->addWidget( font, 1 );
+        widget->setLayout( layout );
+    }
+    else
+    {
+        _p_layout->addWidget( label, line, 0 );
+        _p_layout->addWidget( font, line, 1 );
+    }
+}
 
 FontConfigControl::FontConfigControl( vlc_object_t *_p_this,
                         module_config_t *_p_item, QLabel *_p_label,
-                        QLineEdit *_p_line, QPushButton *_p_button):
-     FileConfigControl( _p_this, _p_item, _p_label, _p_line, _p_button)
-{}
-
-void FontConfigControl::updateField()
+                        QFontComboBox *_p_font):
+     VStringConfigControl( _p_this, _p_item)
 {
-    bool ok;
-    QFont font = QFontDialog::getFont( &ok, QFont( text->text() ), NULL );
-    if( !ok ) return;
-    text->setText( font.family() );
+    label = _p_label;
+    font = _p_font;
 }
 
 /********* String / choice list **********/
index f6e4ba0..fca9457 100644 (file)
@@ -45,6 +45,7 @@
 #include <QPushButton>
 #include <QVector>
 #include <QDialog>
+#include <QFontComboBox>
 
 class QTreeWidget;
 class QTreeWidgetItem;
@@ -329,17 +330,19 @@ public slots:
     virtual void updateField();
 };
 
-class FontConfigControl : public FileConfigControl
+class FontConfigControl : public VStringConfigControl
 {
     Q_OBJECT;
 public:
     FontConfigControl( vlc_object_t *, module_config_t *, QWidget *,
                        QGridLayout *, int&);
     FontConfigControl( vlc_object_t *, module_config_t *, QLabel *,
-                       QLineEdit *, QPushButton *);
+                       QFontComboBox *);
     virtual ~FontConfigControl() {};
-public slots:
-    virtual void updateField();
+    virtual QString getValue(){ return font->currentFont().toString(); }
+protected:
+    QLabel *label;
+    QFontComboBox *font;
 };
 
 class ModuleConfigControl : public VStringConfigControl
index 52d1e26..02a80ba 100644 (file)
@@ -576,8 +576,7 @@ SPrefsPanel::SPrefsPanel( intf_thread_t *_p_intf, QWidget *_parent,
                             encoding );
             CONFIG_GENERIC( "sub-language", String, ui.subLangLabel,
                             preferredLanguage );
-            CONFIG_GENERIC_FILE( "freetype-font", Font, ui.fontLabel, ui.font,
-                            ui.fontBrowse );
+            CONFIG_GENERIC_NO_BOOL( "freetype-font", Font, ui.fontLabel, font );
             CONFIG_GENERIC( "freetype-color", IntegerList, ui.fontColorLabel,
                             fontColor );
             CONFIG_GENERIC( "freetype-rel-fontsize", IntegerList,
index 25bff1d..8963784 100644 (file)
@@ -8,7 +8,7 @@
     <x>0</x>
     <y>0</y>
     <width>772</width>
-    <height>444</height>
+    <height>446</height>
    </rect>
   </property>
   <property name="windowTitle">
         </property>
        </widget>
       </item>
-      <item row="0" column="2">
-       <widget class="QPushButton" name="fontBrowse">
-        <property name="text">
-         <string>Browse...</string>
-        </property>
-       </widget>
-      </item>
       <item row="0" column="1">
-       <widget class="QLineEdit" name="font"/>
+       <widget class="QFontComboBox" name="font"/>
       </item>
       <item row="0" column="0">
        <widget class="QLabel" name="fontLabel">
   <tabstop>preferredLanguage</tabstop>
   <tabstop>encoding</tabstop>
   <tabstop>font</tabstop>
-  <tabstop>fontBrowse</tabstop>
   <tabstop>fontSize</tabstop>
   <tabstop>fontColor</tabstop>
   <tabstop>effect</tabstop>