[vlc-devel] commit: Qt: Use a QFontComboBox instead of a QFontDialog. ( Jean-Baptiste Kempf )

git version control git at videolan.org
Mon Aug 3 21:08:54 CEST 2009


vlc | branch: master | Jean-Baptiste Kempf <jb at videolan.org> | Mon Aug  3 21:07:43 2009 +0200| [c8986a40d495702b6ef9b43e818dcbd626fa2220] | committer: Jean-Baptiste Kempf 

Qt: Use a QFontComboBox instead of a QFontDialog.

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=c8986a40d495702b6ef9b43e818dcbd626fa2220
---

 modules/gui/qt4/components/preferences_widgets.cpp |   38 ++++++++++++-------
 modules/gui/qt4/components/preferences_widgets.hpp |   11 ++++--
 modules/gui/qt4/components/simple_preferences.cpp  |    3 +-
 modules/gui/qt4/ui/sprefs_subtitles.ui             |   12 +-----
 4 files changed, 34 insertions(+), 30 deletions(-)

diff --git a/modules/gui/qt4/components/preferences_widgets.cpp b/modules/gui/qt4/components/preferences_widgets.cpp
index 24968a4..8c6f26c 100644
--- a/modules/gui/qt4/components/preferences_widgets.cpp
+++ b/modules/gui/qt4/components/preferences_widgets.cpp
@@ -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 **********/
diff --git a/modules/gui/qt4/components/preferences_widgets.hpp b/modules/gui/qt4/components/preferences_widgets.hpp
index f6e4ba0..fca9457 100644
--- a/modules/gui/qt4/components/preferences_widgets.hpp
+++ b/modules/gui/qt4/components/preferences_widgets.hpp
@@ -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
diff --git a/modules/gui/qt4/components/simple_preferences.cpp b/modules/gui/qt4/components/simple_preferences.cpp
index 52d1e26..02a80ba 100644
--- a/modules/gui/qt4/components/simple_preferences.cpp
+++ b/modules/gui/qt4/components/simple_preferences.cpp
@@ -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,
diff --git a/modules/gui/qt4/ui/sprefs_subtitles.ui b/modules/gui/qt4/ui/sprefs_subtitles.ui
index 25bff1d..8963784 100644
--- a/modules/gui/qt4/ui/sprefs_subtitles.ui
+++ b/modules/gui/qt4/ui/sprefs_subtitles.ui
@@ -8,7 +8,7 @@
     <x>0</x>
     <y>0</y>
     <width>772</width>
-    <height>444</height>
+    <height>446</height>
    </rect>
   </property>
   <property name="windowTitle">
@@ -131,15 +131,8 @@
         </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">
@@ -187,7 +180,6 @@
   <tabstop>preferredLanguage</tabstop>
   <tabstop>encoding</tabstop>
   <tabstop>font</tabstop>
-  <tabstop>fontBrowse</tabstop>
   <tabstop>fontSize</tabstop>
   <tabstop>fontColor</tabstop>
   <tabstop>effect</tabstop>




More information about the vlc-devel mailing list