[vlc-commits] Qt4: convert VLC message stuff to QString

Rémi Denis-Courmont git at videolan.org
Wed May 11 18:54:36 CEST 2011


vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Wed May 11 19:32:54 2011 +0300| [1075ddb2939148d55f23e21d77fa04940edd3ec0] | committer: Rémi Denis-Courmont

Qt4: convert VLC message stuff to QString

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

 modules/gui/qt4/dialogs/messages.cpp |   42 ++++++++++++++++++++-------------
 modules/gui/qt4/dialogs/messages.hpp |    3 +-
 2 files changed, 27 insertions(+), 18 deletions(-)

diff --git a/modules/gui/qt4/dialogs/messages.cpp b/modules/gui/qt4/dialogs/messages.cpp
index 3315104..20935a2 100644
--- a/modules/gui/qt4/dialogs/messages.cpp
+++ b/modules/gui/qt4/dialogs/messages.cpp
@@ -47,23 +47,32 @@ enum {
 class MsgEvent : public QEvent
 {
 public:
-    MsgEvent( msg_item_t *msg )
-        : QEvent( (QEvent::Type)MsgEvent_Type )
-    {
-        this->msg = msg_Copy( msg );
-    }
-    virtual ~MsgEvent( void )
-    {
-        msg_Free( msg );
-    }
-
-    msg_item_t *msg;
+    MsgEvent( const msg_item_t * );
+
+    int priority;
+    uintptr_t object_id;
+    QString object_type;
+    QString header;
+    QString module;
+    QString text;
 };
 
+MsgEvent::MsgEvent( const msg_item_t *msg )
+    : QEvent( (QEvent::Type)MsgEvent_Type ),
+      priority( msg->i_type ),
+      object_id( msg->i_object_id ),
+      object_type( qfu(msg->psz_object_type) ),
+      header( qfu(msg->psz_header) ),
+      module( qfu(msg->psz_module) ),
+      text( qfu(msg->psz_msg) )
+{
+}
+
 struct msg_cb_data_t
 {
     MessagesDialog *self;
 };
+
 static void MsgCallback( msg_cb_data_t *, msg_item_t *, unsigned );
 
 MessagesDialog::MessagesDialog( intf_thread_t *_p_intf)
@@ -71,7 +80,6 @@ MessagesDialog::MessagesDialog( intf_thread_t *_p_intf)
 {
     setWindowTitle( qtr( "Messages" ) );
     setWindowRole( "vlc-messages" );
-
     /* Build Ui */
     ui.setupUi( this );
     ui.bottomButtonsBox->addButton( new QPushButton( qtr("&Close"), this ),
@@ -160,7 +168,7 @@ void MessagesDialog::updateConfig()
     }
 }
 
-void MessagesDialog::sinkMessage( msg_item_t *item )
+void MessagesDialog::sinkMessage( MsgEvent *msg )
 {
     QTextEdit *messages = ui.messages;
     /* Only scroll if the viewport is at the end.
@@ -180,9 +188,9 @@ void MessagesDialog::sinkMessage( msg_item_t *item )
 
     messages->setFontItalic( true );
     messages->setTextColor( "darkBlue" );
-    messages->insertPlainText( qfu( item->psz_module ) );
+    messages->insertPlainText( msg->module );
 
-    switch (item->i_type)
+    switch (msg->priority)
     {
         case VLC_MSG_INFO:
             messages->setTextColor( "blue" );
@@ -206,7 +214,7 @@ void MessagesDialog::sinkMessage( msg_item_t *item )
     /* Add message Regular black Font */
     messages->setFontItalic( false );
     messages->setTextColor( "black" );
-    messages->insertPlainText( qfu(item->psz_msg) );
+    messages->insertPlainText( msg->text );
     messages->insertPlainText( "\n" );
     if ( b_autoscroll ) messages->ensureCursorVisible();
 }
@@ -216,7 +224,7 @@ void MessagesDialog::customEvent( QEvent *event )
     MsgEvent *msge = static_cast<MsgEvent *>(event);
 
     assert( msge );
-    sinkMessage( msge->msg );
+    sinkMessage( msge );
 }
 
 void MessagesDialog::clear()
diff --git a/modules/gui/qt4/dialogs/messages.hpp b/modules/gui/qt4/dialogs/messages.hpp
index 24ba195..3b9f66c 100644
--- a/modules/gui/qt4/dialogs/messages.hpp
+++ b/modules/gui/qt4/dialogs/messages.hpp
@@ -37,6 +37,7 @@ class QTextEdit;
 class QTreeWidget;
 class QTreeWidgetItem;
 class QLineEdit;
+class MsgEvent;
 
 class MessagesDialog : public QVLCFrame, public Singleton<MessagesDialog>
 {
@@ -50,7 +51,7 @@ private:
     msg_cb_data_t *cbData;
     static void sinkMessage( msg_cb_data_t *, msg_item_t *, unsigned );
     void customEvent( QEvent * );
-    void sinkMessage( msg_item_t *item );
+    void sinkMessage( MsgEvent * );
 
 private slots:
     bool save();



More information about the vlc-commits mailing list