From 1bc507d196cb6629440df5d4fe71a59324e2880d Mon Sep 17 00:00:00 2001 From: Geoffroy Couprie Date: Sat, 26 Dec 2009 14:45:03 +0100 Subject: [PATCH] Qt4: add the verbose-objects option to the messages window --- modules/gui/qt4/dialogs/messages.cpp | 50 +++++++++++++++++++++++++--- modules/gui/qt4/dialogs/messages.hpp | 4 +++ 2 files changed, 50 insertions(+), 4 deletions(-) diff --git a/modules/gui/qt4/dialogs/messages.cpp b/modules/gui/qt4/dialogs/messages.cpp index 825446d8d2..8d80e54807 100644 --- a/modules/gui/qt4/dialogs/messages.cpp +++ b/modules/gui/qt4/dialogs/messages.cpp @@ -38,6 +38,7 @@ #include #include #include +#include #include @@ -119,19 +120,28 @@ MessagesDialog::MessagesDialog( intf_thread_t *_p_intf) verbosityLabel = new QLabel( qtr( "Verbosity Level" ) ); + vbobjectsEdit = new QLineEdit(); + + vbobjectsEdit->setMaximumWidth( 100 ); + vbobjectsEdit->setText(config_GetPsz( p_intf, "verbose-objects")); + vbobjectsLabel = new QLabel( qtr( "Message filter" ) ); + mainLayout->addWidget( mainTab, 0, 0, 1, 0 ); mainLayout->addWidget( verbosityLabel, 1, 0, 1, 1 ); mainLayout->addWidget( verbosityBox, 1, 1 ); - mainLayout->setColumnStretch( 2, 10 ); - mainLayout->addWidget( saveLogButton, 1, 3 ); - mainLayout->addWidget( clearUpdateButton, 1, 4 ); - mainLayout->addWidget( closeButton, 1, 5 ); + mainLayout->addWidget( vbobjectsLabel, 1, 2, 1, 1 ); + mainLayout->addWidget( vbobjectsEdit, 1, 3 ); + mainLayout->setColumnStretch( 4, 10 ); + mainLayout->addWidget( saveLogButton, 1, 5 ); + mainLayout->addWidget( clearUpdateButton, 1, 6 ); + mainLayout->addWidget( closeButton, 1, 7 ); BUTTONACT( closeButton, hide() ); BUTTONACT( clearUpdateButton, clearOrUpdate() ); BUTTONACT( saveLogButton, save() ); CONNECT( mainTab, currentChanged( int ), this, updateTab( int ) ); + CONNECT(vbobjectsEdit, editingFinished(), this, updateConfig()); /* General action */ readSettings( "Messages", QSize( 600, 450 ) ); @@ -157,6 +167,8 @@ void MessagesDialog::updateTab( int index ) { verbosityLabel->hide(); verbosityBox->hide(); + vbobjectsLabel->hide(); + vbobjectsEdit->hide(); clearUpdateButton->setText( qtr( "&Update" ) ); saveLogButton->hide(); updateTree(); @@ -166,11 +178,41 @@ void MessagesDialog::updateTab( int index ) { verbosityLabel->show(); verbosityBox->show(); + vbobjectsLabel->show(); + vbobjectsEdit->show(); clearUpdateButton->setText( qtr( "&Clear" ) ); saveLogButton->show(); } } +void MessagesDialog::updateConfig() +{ + config_PutPsz(p_intf, "verbose-objects", qtu(vbobjectsEdit->text())); + //vbobjectsEdit->setText("vbEdit changed!"); + + char * psz_verbose_objects = strdup(qtu(vbobjectsEdit->text())); + msg_EnableObjectPrinting(p_intf, "all"); + if( psz_verbose_objects ) + { + char * psz_object, * iter = psz_verbose_objects; + while( (psz_object = strsep( &iter, "," )) ) + { + switch( psz_object[0] ) + { + printf("%s\n", psz_object+1); + case '+': msg_EnableObjectPrinting(p_intf, psz_object+1); break; + case '-': msg_DisableObjectPrinting(p_intf, psz_object+1); break; + default: + msg_Err( p_intf, "verbose-objects usage: \n" + "--verbose-objects=+printthatobject," + "-dontprintthatone\n" + "(keyword 'all' to applies to all objects)"); + } + } + free( psz_verbose_objects ); + } +} + void MessagesDialog::sinkMessage( msg_item_t *item ) { if ((item->i_type == VLC_MSG_WARN && verbosityBox->value() < 1) diff --git a/modules/gui/qt4/dialogs/messages.hpp b/modules/gui/qt4/dialogs/messages.hpp index 766feffaa7..720080abfd 100644 --- a/modules/gui/qt4/dialogs/messages.hpp +++ b/modules/gui/qt4/dialogs/messages.hpp @@ -35,6 +35,7 @@ class QLabel; class QTextEdit; class QTreeWidget; class QTreeWidgetItem; +class QLineEdit; class MessagesDialog : public QVLCFrame, public Singleton { @@ -50,6 +51,8 @@ private: QTreeWidget *modulesTree; QPushButton *clearUpdateButton; QPushButton *saveLogButton; + QLineEdit *vbobjectsEdit; + QLabel *vbobjectsLabel; msg_subscription_t *sub; msg_cb_data_t *cbData; static void sinkMessage( msg_cb_data_t *, msg_item_t *, unsigned ); @@ -60,6 +63,7 @@ private slots: void updateTab( int ); void clearOrUpdate(); bool save(); + void updateConfig(); private: void clear(); void updateTree(); -- 2.39.2