Changeset 815 for trunk/gtk/msgwin.c


Ignore:
Timestamp:
Aug 22, 2006, 2:12:58 AM (15 years ago)
Author:
joshe
Message:

Rework the message stuff again to be easier on the frontend.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/gtk/msgwin.c

    r804 r815  
    3838static void
    3939changelevel( GtkToggleButton * button, gpointer data );
    40 static void
    41 addmsg( int level, const char * msg );
    4240
    43 
    44 static GMutex * listmutex = NULL;
    45 static GSList * messages = NULL;
    4641static GtkTextBuffer * textbuf = NULL;
    47 
    48 void
    49 msgwin_init( void ) {
    50   if( !g_thread_supported() )
    51     g_thread_init( NULL );
    52   listmutex = g_mutex_new();
    53   tr_setMessageFunction( addmsg );
    54 }
    5542
    5643GtkWidget *
     
    147134  const char * pref;
    148135
     136  tr_setMessageQueuing( 1 );
    149137  pref = cf_getpref( PREF_MSGLEVEL );
    150138  if( NULL == pref )
     
    161149void
    162150msgwin_update( void ) {
    163   GSList    * ii;
    164   GtkTextIter iter;
     151  tr_msg_list_t * msgs, * ii;
     152  GtkTextIter     iter;
     153  char          * label;
    165154
    166155  if( NULL == textbuf )
    167156    return;
    168157
    169   g_mutex_lock( listmutex );
    170 
    171   if( NULL != messages ) {
    172     for( ii = messages; NULL != ii; ii = ii->next ) {
    173       gtk_text_buffer_get_end_iter( textbuf, &iter );
    174       gtk_text_buffer_insert( textbuf, &iter, ii->data, -1 );
    175       g_free( ii->data );
     158  msgs = tr_getQueuedMessages();
     159  for( ii = msgs; NULL != ii; ii = ii->next ) {
     160    switch( ii->level )
     161    {
     162      case TR_MSG_ERR:
     163        label = _( "ERR " );
     164        break;
     165      case TR_MSG_INF:
     166        label = _( "INF " );
     167        break;
     168      case TR_MSG_DBG:
     169        label = _( "DBG " );
     170        break;
     171      default:
     172        label = _( "??? " );
     173        break;
    176174    }
    177     g_slist_free( messages );
    178     messages = NULL;
     175    gtk_text_buffer_get_end_iter( textbuf, &iter );
     176    gtk_text_buffer_insert( textbuf, &iter, label, -1 );
     177    gtk_text_buffer_insert( textbuf, &iter, ii->message, -1 );
     178    gtk_text_buffer_insert( textbuf, &iter, "\n", -1 );
    179179  }
    180 
    181   g_mutex_unlock( listmutex );
     180  tr_freeMessageList( msgs );
    182181}
    183 
    184 static void
    185 addmsg( int level, const char * msg ) {
    186   char * str;
    187 
    188   g_mutex_lock( listmutex );
    189 
    190   switch( level )
    191   {
    192     case TR_MSG_ERR:
    193       str = _( "ERR" );
    194       break;
    195     case TR_MSG_INF:
    196       str = _( "INF" );
    197       break;
    198     case TR_MSG_DBG:
    199       str = _( "DBG" );
    200       break;
    201     default:
    202       str = _( "???" );
    203       break;
    204   }
    205 
    206   str = g_strdup_printf( "%s: %s\n", str, msg );
    207   messages = g_slist_append( messages, str );
    208 
    209   g_mutex_unlock( listmutex );
    210 }
Note: See TracChangeset for help on using the changeset viewer.