[vlc-devel] commit: Qt4: add the verbose-objects option to the messages window ( Geoffroy Couprie )
git version control
git at videolan.org
Sat Dec 26 16:24:32 CET 2009
vlc | branch: master | Geoffroy Couprie <geal at videolan.org> | Sat Dec 26 14:45:03 2009 +0100| [1bc507d196cb6629440df5d4fe71a59324e2880d] | committer: Geoffroy Couprie
Qt4: add the verbose-objects option to the messages window
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=1bc507d196cb6629440df5d4fe71a59324e2880d
---
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 825446d..8d80e54 100644
--- a/modules/gui/qt4/dialogs/messages.cpp
+++ b/modules/gui/qt4/dialogs/messages.cpp
@@ -38,6 +38,7 @@
#include <QTreeWidgetItem>
#include <QHeaderView>
#include <QMutex>
+#include <QLineEdit>
#include <assert.h>
@@ -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 766feff..720080a 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<MessagesDialog>
{
@@ -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();
More information about the vlc-devel
mailing list