Qt: Ok is not ok as a button label.
[vlc.git] / modules / gui / qt4 / dialogs / plugins.cpp
index 2f6f77a..f4289d1 100644 (file)
 
 #include "plugins.hpp"
 
+#include "util/customwidgets.hpp"
+
 //#include <vlc_modules.h>
 
 #include <QTreeWidget>
 #include <QStringList>
 #include <QHeaderView>
 #include <QDialogButtonBox>
+#include <QLineEdit>
+#include <QLabel>
 
 PluginDialog::PluginDialog( intf_thread_t *_p_intf ) : QVLCFrame( _p_intf )
 {
@@ -66,15 +70,24 @@ PluginDialog::PluginDialog( intf_thread_t *_p_intf ) : QVLCFrame( _p_intf )
     treePlugins->setSortingEnabled( true );
     treePlugins->sortByColumn( 1, Qt::AscendingOrder );
 
+    QLabel *label = new QLabel( _("&Search:"), this );
+    edit = new SearchLineEdit( this );
+    label->setBuddy( edit );
+
+    layout->addWidget( label, 1, 0 );
+    layout->addWidget( edit, 1, 1, 1, -1 );
+    CONNECT( edit, textChanged( QString ),
+            this, search( QString ) );
+
     QDialogButtonBox *box = new QDialogButtonBox;
-    QPushButton *okButton = new QPushButton( "ok", this );
+    QPushButton *okButton = new QPushButton( qtr( "&Close" ), this );
     box->addButton( okButton, QDialogButtonBox::AcceptRole );
-    layout->addWidget( box, 1, 2 );
+    layout->addWidget( box, 2, 2 );
 
     BUTTONACT( okButton, close() );
 
     setMinimumSize( 500, 300 );
-    readSettings( "Plugins", QSize( 500, 300 ) );
+    readSettings( "Plugins", QSize( 540, 400 ) );
 }
 
 inline void PluginDialog::FillTree()
@@ -85,8 +98,8 @@ inline void PluginDialog::FillTree()
     for( unsigned int i = 0; (p_module = p_list[i] ) != NULL; i++ )
     {
         QStringList qs_item;
-        qs_item << module_get_name( p_module, true )
-                << module_get_capability( p_module )
+        qs_item << qfu( module_get_name( p_module, true ) )
+                << qfu( module_get_capability( p_module ) )
                 << QString::number( module_get_score( p_module ) );
 
         QTreeWidgetItem *item = new QTreeWidgetItem( qs_item );
@@ -94,6 +107,19 @@ inline void PluginDialog::FillTree()
     }
 }
 
+void PluginDialog::search( const QString qs )
+{
+    QList<QTreeWidgetItem *> items = treePlugins->findItems( qs, Qt::MatchContains );
+    items += treePlugins->findItems( qs, Qt::MatchContains, 1 );
+
+    QTreeWidgetItem *item = NULL;
+    for( int i = 0; i < treePlugins->topLevelItemCount(); i++ )
+    {
+        item = treePlugins->topLevelItem( i );
+        item->setHidden( !items.contains( item ) );
+    }
+}
+
 PluginDialog::~PluginDialog()
 {
     writeSettings( "Plugins" );