Changeset 2445 for trunk/jons-gtk-gui

Show
Ignore:
Timestamp:
01/09/01 15:26:56 (8 years ago)
Author:
emojon
Message:

Auto Logon

Location:
trunk/jons-gtk-gui/src
Files:
6 modified

Legend:

Unmodified
Added
Removed
  • trunk/jons-gtk-gui/src/convo.cpp

    r2362 r2445  
    2121#include "licq_gtk.h" 
    2222 
     23#include "licq_color.h" 
    2324#include "licq_icqd.h" 
    2425#include "licq_user.h" 
     
    5152 
    5253    c->user = u; 
     54    c->clrBack = new GdkColor; 
     55    c->clrFore = new GdkColor; 
    5356 
    5457    cnv = g_slist_append(cnv, c); 
     
    100103     
    101104    /* Handle the etag stuff */ 
    102     struct e_tag_data *etd = g_new0(struct e_tag_data, 1); 
    103  
    104     c->etag = etd; 
     105    c->etag = g_new0(struct e_tag_data, 1); 
    105106 
    106107    /* Make the convo window */ 
     
    218219    gtk_window_set_focus(GTK_WINDOW(c->window), c->entry); 
    219220 
    220     /* Don't forget the delete signal */ 
    221     gtk_signal_connect(GTK_OBJECT(c->window), "destroy", 
    222                GTK_SIGNAL_FUNC(convo_close), c); 
     221    /* Don't forget the delete_event signal */ 
     222    gtk_signal_connect(GTK_OBJECT(c->window), "delete_event", 
     223               GTK_SIGNAL_FUNC(convo_delete), c); 
    223224 
    224225    /* More e_tag_data stuff */ 
     
    404405    } 
    405406 
    406     if(u_event->SubCommand() == ICQ_CMDxSUB_MSG) 
    407     { 
    408         const gchar *message = u_event->Text(); 
     407    // Get the color that it was sent in if it's wanted 
     408    if (recv_colors) 
     409    { 
     410        if (!c->clrBack) 
     411        { 
     412            c->clrBack = new GdkColor; 
     413        } 
     414         
     415        if (!c->clrFore) 
     416        { 
     417            c->clrFore = new GdkColor; 
     418        } 
     419 
     420        CICQColor *pIcqColor = u_event->Color(); 
     421        c->clrFore->red   = pIcqColor->ForeRed() * 257; 
     422        c->clrFore->green = pIcqColor->ForeGreen() * 257; 
     423        c->clrFore->blue  = pIcqColor->ForeBlue() * 257; 
     424        c->clrFore->pixel = 255; 
     425        c->clrBack->red   = pIcqColor->BackRed() * 257; 
     426        c->clrBack->green = pIcqColor->BackGreen() * 257; 
     427        c->clrBack->blue  = pIcqColor->BackBlue() * 257; 
     428        c->clrBack->pixel = 255; 
     429    } 
     430    else 
     431    { 
     432        if (c->clrFore) 
     433        { 
     434            delete c->clrFore; 
     435            c->clrFore = 0; 
     436        } 
     437 
     438        if (c->clrBack) 
     439        { 
     440            delete c->clrBack; 
     441            c->clrBack = 0; 
     442        } 
     443    } 
     444 
     445    // How about their alias and an optional timestamp? 
     446    gtk_text_freeze(GTK_TEXT(c->text)); 
     447    gtk_text_insert(GTK_TEXT(c->text), 0, red, 0, c->user->GetAlias(), -1); 
     448 
     449    if (show_convo_timestamp) 
     450    { 
     451        char szTime[26]; 
     452        time_t message_time = u_event->Time(); 
     453        struct tm *_tm = localtime(&message_time); 
     454        strftime(szTime, 26, timestamp_format, _tm); 
     455        szTime[25] = '\0'; 
    409456     
    410         const gchar *for_user_m = 
    411                 g_strdup_printf(":  %s\n", message); 
    412  
    413         char szTime[26]; 
    414         if (show_convo_timestamp) 
    415         { 
    416             time_t message_time = u_event->Time(); 
    417             struct tm *_tm = localtime(&message_time); 
    418             strftime(szTime, 26, timestamp_format, _tm); 
    419             szTime[25] = '\0'; 
    420         } 
    421  
    422         gtk_text_freeze(GTK_TEXT(c->text)); 
    423         gtk_text_insert(GTK_TEXT(c->text), 0, red, 0, 
    424                 c->user->GetAlias(), -1); 
    425          
    426         if (show_convo_timestamp) 
    427         { 
    428             char *temp_stamp = g_strdup_printf(" (%s)", szTime); 
    429             gtk_text_insert(GTK_TEXT(c->text), 0, red, 0, 
    430                 temp_stamp, -1); 
    431             g_free(temp_stamp); 
    432         } 
    433          
    434         gtk_text_insert(GTK_TEXT(c->text), 0, 0, 0, for_user_m, -1); 
     457        char *szTempStamp = g_strdup_printf(" (%s): ", szTime); 
     458        gtk_text_insert(GTK_TEXT(c->text), 0, red, 0, szTempStamp, -1); 
     459        g_free(szTempStamp); 
     460    } 
     461 
     462    switch (u_event->SubCommand()) 
     463    { 
     464      case ICQ_CMDxSUB_MSG: 
     465      { 
     466        gtk_text_insert(GTK_TEXT(c->text), 0, c->clrFore, c->clrBack, 
     467                        u_event->Text(), -1); 
     468        gtk_text_insert(GTK_TEXT(c->text), 0, 0, 0, "\n", -1); 
    435469        gtk_text_thaw(GTK_TEXT(c->text)); 
    436     } 
    437  
    438     else if(u_event->SubCommand() == ICQ_CMDxSUB_URL) 
    439     {    
     470        break; 
     471      } 
     472 
     473      case ICQ_CMDxSUB_URL: 
     474      {  
    440475        const char *url = u_event->Text(); 
    441476 
     
    447482        gtk_text_insert(GTK_TEXT(c->text), 0, 0, 0, for_user_u, -1); 
    448483        gtk_text_thaw(GTK_TEXT(c->text)); 
    449  
    450     } 
    451  
    452     else if(u_event->SubCommand() == ICQ_CMDxSUB_CHAT) 
    453     {    
     484        break; 
     485      } 
     486 
     487      case ICQ_CMDxSUB_CHAT: 
     488      {  
    454489        const gchar *chat_d = u_event->Text(); 
    455490 
     
    474509            chat_accept_window(c_event, uin); 
    475510        } 
    476     } 
    477  
    478     else if(u_event->SubCommand() == ICQ_CMDxSUB_FILE) 
    479     { 
     511        break; 
     512      } 
     513 
     514      case ICQ_CMDxSUB_FILE: 
     515      { 
    480516        const gchar *file_d = u_event->Text(); 
    481517         
     
    498534            file_accept_window(c->user, u_event); 
    499535        } 
    500     } 
    501 } 
    502  
    503 gboolean convo_close(GtkWidget *widget, struct conversation *c) 
    504 { 
    505     gtk_widget_destroy(c->window); 
     536        break; 
     537      } 
     538 
     539      default: // Not good 
     540        break; 
     541    } // switch 
     542} 
     543 
     544gboolean convo_delete(GtkWidget *widget, GdkEvent *event, struct conversation *c) 
     545{ 
     546    convo_close(0, c); 
     547    return false; 
     548} 
     549 
     550void convo_close(GtkWidget *widget, struct conversation *c) 
     551{ 
     552    if (c->clrBack) 
     553    { 
     554        delete (c->clrBack); 
     555    } 
     556    if (c->clrFore) 
     557    { 
     558        delete (c->clrFore); 
     559    } 
     560 
    506561    cnv = g_slist_remove(cnv, c); 
    507562    catcher = g_slist_remove(catcher, c->etag); 
    508     return TRUE; 
    509 } 
     563 
     564    gtk_widget_destroy(c->window); 
     565 
     566    g_free(c->etag); 
     567    g_free(c); 
     568} 
  • trunk/jons-gtk-gui/src/history_window.cpp

    r2057 r2445  
    2020 
    2121#include "licq_gtk.h" 
     22#include "event_description.h" 
    2223 
    2324#include "licq_events.h" 
     
    2728 
    2829#include <gtk/gtk.h> 
     30#include <time.h> 
    2931 
    3032const gchar *line = "\n----------------------------\n"; 
     
    3941    struct history *hist; 
    4042    const gchar *title = g_strdup_printf("History with %s", user->GetAlias()); 
    41     gchar sz_date[30]; 
     43    gchar szHdr[256]; 
    4244    time_t _time; 
    4345    HistoryList hist_list; 
     
    4749    hist->user = user; 
    4850 
    49     /* Make the window */ 
     51    // Make the window 
    5052    window = gtk_window_new(GTK_WINDOW_DIALOG); 
    5153    gtk_window_set_title(GTK_WINDOW(window), title); 
    5254    gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER); 
    5355 
    54     /* Make the boxes */ 
     56    // Make the boxes 
    5557    v_box = gtk_vbox_new(FALSE, 5); 
    5658    h_box = gtk_hbox_new(FALSE, 5); 
    5759 
    58     /* Make the scrolled window */ 
     60    // Make the scrolled window 
    5961    scroll = gtk_scrolled_window_new(NULL, NULL); 
    6062    gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll), 
     
    6365    gtk_widget_set_usize(scroll, 300, 225); 
    6466 
    65     /* Make the text box */ 
     67    // Make the text box 
    6668    hist->text = gtk_text_new(NULL, NULL); 
    6769    gtk_text_set_word_wrap(GTK_TEXT(hist->text), TRUE); 
     
    6971    gtk_container_add(GTK_CONTAINER(scroll), hist->text); 
    7072 
    71     /* Pack the scrolled window */ 
     73    // Pack the scrolled window 
    7274    gtk_box_pack_start(GTK_BOX(v_box), scroll, TRUE, TRUE, 0); 
    7375 
    74     /* The close button */ 
     76    // The close button 
    7577    button = gtk_button_new_with_label("Close"); 
    7678    gtk_signal_connect(GTK_OBJECT(button), "clicked", 
    7779            GTK_SIGNAL_FUNC(dialog_close), window); 
    7880 
    79     /* The reverse check button */ 
     81    // The reverse check button 
    8082    hist->check = gtk_check_button_new_with_label("Reverse"); 
    8183    gtk_signal_connect(GTK_OBJECT(hist->check), "toggled", 
    8284               GTK_SIGNAL_FUNC(reverse_history), hist); 
    8385 
    84     /* Pack them */ 
     86    // Pack them 
    8587    gtk_box_pack_start(GTK_BOX(h_box), hist->check, TRUE, TRUE, 5); 
    8688    gtk_box_pack_start(GTK_BOX(h_box), button, TRUE, TRUE, 5); 
    8789    gtk_box_pack_start(GTK_BOX(v_box), h_box, FALSE, FALSE, 0); 
    8890     
    89     /* Add in the history */ 
    90     gtk_text_freeze(GTK_TEXT(hist->text)); 
     91    // Add in the history 
    9192    if(!user->GetHistory(hist_list)) 
    9293        return; 
    9394 
     95    // The three colors, blue, red, and white 
     96    GdkColor clrBlue, clrRed, clrWhite; 
     97 
     98    clrBlue.red   = 0; 
     99    clrBlue.green = 0; 
     100    clrBlue.blue  = 0xFFFF; 
     101    clrBlue.pixel = gulong(255 * 256); 
     102 
     103    clrRed.red   = 0xFFFF; 
     104    clrRed.green = 0; 
     105    clrRed.blue  = 0; 
     106    clrRed.pixel = 255; 
     107 
     108    clrWhite.red   = 0xFFFF; 
     109    clrWhite.green = 0xFFFF; 
     110    clrWhite.blue  = 0xFFFF; 
     111    clrWhite.pixel = 255; 
     112 
    94113    history_iter = hist_list.begin(); 
     114    gtk_text_freeze(GTK_TEXT(hist->text)); 
     115 
     116    // Easy way, small memory 
     117    GdkColor *clrColor; 
     118    char *szDesc, szDate[30]; 
     119    tm *tmStupid; 
    95120     
    96     while(1) 
     121    while(history_iter != hist_list.end()) 
    97122    { 
    98         if(history_iter == hist_list.end()) 
    99             break; 
    100  
    101123        _time = (*history_iter)->Time(); 
    102         sprintf(sz_date, "%s\n", ctime(&_time)); 
    103  
     124        tmStupid = localtime(&_time); 
     125        strftime(szDate, 29, "%c", tmStupid); 
     126        szDesc = event_description(*history_iter); 
     127         
     128        if ((*history_iter)->Direction() == D_RECEIVER) 
     129        { 
     130            clrColor = &clrRed; 
     131            snprintf(szHdr, 255, 
     132                     "%s from %s\n%s [%c%c%c%c]\n\n", 
     133                 szDesc, 
     134                 user->GetAlias(), 
     135                 szDate, 
     136                 (*history_iter)->IsDirect() ? 'D' : '-', 
     137                 (*history_iter)->IsMultiRec() ? 'M' : '-', 
     138                 (*history_iter)->IsUrgent() ? 'U' : '-', 
     139                 (*history_iter)->IsEncrypted() ? 'E' : '-'); 
     140        } 
     141        else 
     142        { 
     143            clrColor = &clrBlue; 
     144            snprintf(szHdr, 255, 
     145                     "%s to %s\n%s [%c%c%c%c]\n\n", 
     146                 szDesc, 
     147                 user->GetAlias(), 
     148                 szDate, 
     149                 (*history_iter)->IsDirect() ? 'D' : '-', 
     150                 (*history_iter)->IsMultiRec() ? 'M' : '-', 
     151                 (*history_iter)->IsUrgent() ? 'U' : '-', 
     152                 (*history_iter)->IsEncrypted() ? 'E' : '-'); 
     153        } 
     154 
     155        szHdr[255] = '\0'; 
    104156        gtk_text_insert(GTK_TEXT(hist->text), 0,  
    105             (*history_iter)->Direction() == D_RECEIVER ? red: blue, 
    106             0,  
    107             sz_date, -1); 
     157            clrColor, &clrWhite, szHdr, -1); 
    108158        gtk_text_insert(GTK_TEXT(hist->text), 
    109159            0, 
    110             (*history_iter)->Direction() == D_RECEIVER ? red : blue, 
    111             0, 
    112             (*history_iter)->Text(), -1); 
    113         gtk_text_insert(GTK_TEXT(hist->text), 0, 0, 0, line, -1); 
    114  
     160            clrColor, &clrWhite, (*history_iter)->Text(), -1); 
     161        gtk_text_insert(GTK_TEXT(hist->text), 0, 0, 0, "\n\n", -1); 
     162 
     163        delete [] szDesc; 
    115164        history_iter++; 
    116165    } 
     
    147196                            break; 
    148197        } 
    149  
    150198        else 
    151199        { 
  • trunk/jons-gtk-gui/src/licq_gtk.h

    r2361 r2445  
    2727#include "licq_log.h" 
    2828#include "licq_chat.h" 
     29#include "licq_color.h" 
    2930#include "licq_user.h" 
    3031 
     
    3334#include <fstream.h> 
    3435 
    35 /* Program used definitions */ 
    36 #define MAX_LENGTH_UIN  8 
     36/* Program used constants */ 
     37const int MAX_LENGTH_UIN = 8; 
    3738 
    3839/********** Structures ******************/ 
     
    5051    GtkWidget *send_list; 
    5152    GtkWidget *progress; 
     53    GdkColor *clrFore; 
     54    GdkColor *clrBack; 
    5255    gchar prog_buf[60]; 
    5356    gchar *for_user; 
     
    303306    GtkWidget *enter_sends; 
    304307    GtkWidget *flash_events; 
     308    GtkWidget *chkRecvColors; 
    305309 
    306310    // Network section 
     
    497501extern bool show_ignored_users; 
    498502extern bool show_convo_timestamp; 
     503extern bool recv_colors; 
    499504extern char timestamp_format[50]; 
    500505extern bool enter_sends; 
    501506extern bool flash_events; 
     507extern unsigned long auto_logon; 
    502508 
    503509/* Globals in random_chat.cpp */ 
     
    599605extern void convo_cancel(GtkWidget *, struct conversation *); 
    600606extern void convo_recv(unsigned long); 
    601 extern gboolean convo_close(GtkWidget *, struct conversation *); 
     607extern gint convo_delete(GtkWidget *, GdkEvent *, struct conversation *); 
     608extern void convo_close(GtkWidget *, struct conversation *); 
    602609 
    603610 
  • trunk/jons-gtk-gui/src/main.cpp

    r2176 r2445  
    125125    gtk_main(); 
    126126 
     127    icq_daemon->icqLogoff(); 
     128    icq_daemon->UnregisterPlugin(); 
     129    gLog.ModifyService(S_PLUGIN, 0); 
     130 
    127131    gtk_widget_destroy(main_window); 
    128  
    129     icq_daemon->icqLogoff(); 
    130  
    131     icq_daemon->UnregisterPlugin(); 
    132132 
    133133    return 0; 
  • trunk/jons-gtk-gui/src/main_window.cpp

    r2176 r2445  
    3131void main_window_delete_event(GtkWidget *mainwindow, gpointer data) 
    3232{ 
    33     icq_daemon->UnregisterPlugin(); 
    3433    gtk_main_quit(); 
    3534} 
     
    151150    gtk_widget_show(system_status); 
    152151 
     152    // Auto logon here 
     153    if (auto_logon != ICQ_STATUS_OFFLINE) 
     154        icq_daemon->icqLogon(auto_logon); 
     155 
    153156    return main_window; 
    154157} 
  • trunk/jons-gtk-gui/src/option_window.cpp

    r2361 r2445  
    2929bool show_ignored_users; 
    3030bool show_convo_timestamp; 
     31bool recv_colors; 
    3132bool enter_sends; 
    3233bool flash_events; 
    3334char timestamp_format[50]; 
     35unsigned long auto_logon; 
    3436 
    3537// The "Options" selection under the menu in the main window 
     
    100102        GtkAttachOptions(GTK_FILL | GTK_EXPAND), 
    101103        GTK_FILL, 3,3 ); 
    102      
     104 
     105    // Receive colors 
     106    ow->chkRecvColors = gtk_check_button_new_with_label("Receive Colors"); 
     107    gtk_table_attach(GTK_TABLE(table), ow->chkRecvColors, 0, 1, 3, 4, 
     108        GtkAttachOptions(GTK_FILL | GTK_EXPAND), 
     109        GTK_FILL, 3, 3); 
    103110 
    104111    // Put the table in the notebook 
     
    293300    lItems = g_list_append(lItems, const_cast<char *>("(None)")); 
    294301    lItems = g_list_append(lItems, const_cast<char *>("Online")); 
     302    lItems = g_list_append(lItems, const_cast<char *>("Free For Chat")); 
    295303    lItems = g_list_append(lItems, const_cast<char *>("Away")); 
    296304    lItems = g_list_append(lItems, const_cast<char *>("Not Available")); 
     
    344352    gtk_entry_set_text(GTK_ENTRY(ow->txtTimestampFormat), 
    345353        timestamp_format); 
     354    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ow->chkRecvColors), 
     355        recv_colors); 
    346356 
    347357    // Clist of servers 
     
    358368    gtk_spin_button_set_value(GTK_SPIN_BUTTON(ow->spnPortHigh), 
    359369        icq_daemon->TCPPortsHigh()); 
     370 
     371    // Auto Logon 
     372    char szStatus[15]; 
     373    if (auto_logon == ICQ_STATUS_OFFLINE) 
     374    { 
     375        strcpy(szStatus, "(None)"); 
     376    } 
     377    else if (auto_logon & ICQ_STATUS_DND) 
     378    { 
     379        strcpy(szStatus, "Do Not Disturb"); 
     380    } 
     381    else if (auto_logon & ICQ_STATUS_OCCUPIED) 
     382    { 
     383        strcpy(szStatus, "Occupied"); 
     384    } 
     385    else if (auto_logon & ICQ_STATUS_NA) 
     386    { 
     387        strcpy(szStatus, "Not Available"); 
     388    } 
     389    else if (auto_logon & ICQ_STATUS_AWAY) 
     390    { 
     391        strcpy(szStatus, "Away"); 
     392    } 
     393    else if (auto_logon & ICQ_STATUS_FREEFORCHAT) 
     394    { 
     395        strcpy(szStatus, "Free For Chat"); 
     396    } 
     397    else if (auto_logon & ICQ_STATUS_ONLINE) 
     398    { 
     399        strcpy(szStatus, "Online"); 
     400    } 
     401    else 
     402    { 
     403        strcpy(szStatus, "(None)"); 
     404    } 
     405 
     406    gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(ow->cmbAutoLogon)->entry), 
     407        szStatus); 
     408 
     409    if (auto_logon != ICQ_STATUS_OFFLINE && auto_logon & ICQ_STATUS_FxPRIVATE) 
     410    { 
     411        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ow->chkInvisible), 
     412            true); 
     413    } 
     414         
    360415} 
    361416 
    362417void done_options(GtkWidget *widget, gpointer data) 
    363418{ 
    364     // Refresh the contact list 
    365     contact_list_refresh(); 
    366  
    367419    struct options_window *ow = (struct options_window *)data; 
    368420    show_offline_users = gtk_toggle_button_get_active( 
     
    378430    strcpy(timestamp_format, temp); 
    379431    g_free(temp); 
     432    recv_colors = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON( 
     433        ow->chkRecvColors)); 
    380434     
    381435    // Save the daemon options 
     
    389443    icq_daemon->SetTCPEnabled( 
    390444       !gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ow->chkTCPEnabled))); 
     445 
     446    // Auto logon 
     447    const char *szAutoLogon = 
     448      gtk_editable_get_chars(GTK_EDITABLE(GTK_COMBO(ow->cmbAutoLogon)->entry), 
     449                             0, -1); 
     450 
     451    if (strcmp("Online", szAutoLogon) == 0) 
     452        auto_logon = ICQ_STATUS_ONLINE; 
     453    else if (strcmp("Away", szAutoLogon) == 0) 
     454        auto_logon = ICQ_STATUS_AWAY; 
     455    else if (strcmp("Not Available", szAutoLogon) == 0) 
     456        auto_logon = ICQ_STATUS_NA; 
     457    else if (strcmp("Occupied", szAutoLogon) == 0) 
     458        auto_logon = ICQ_STATUS_OCCUPIED; 
     459    else if (strcmp("Do Not Disturb", szAutoLogon) == 0) 
     460        auto_logon = ICQ_STATUS_DND; 
     461    else if (strcmp("Free For Chat", szAutoLogon) == 0) 
     462        auto_logon = ICQ_STATUS_FREEFORCHAT; 
     463    else 
     464        auto_logon = ICQ_STATUS_OFFLINE; 
     465 
     466    if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ow->chkInvisible))) 
     467    { 
     468        auto_logon |= ICQ_STATUS_FxPRIVATE; 
     469    } 
    391470 
    392471    gtk_widget_destroy(ow->window); 
     
    414493    licqConf.WriteNum("ColorAway_Blue", away_color->blue); 
    415494    licqConf.WriteNum("ColorAway_Pixel", away_color->pixel); 
     495    licqConf.WriteNum("AutoLogon", auto_logon); 
    416496    licqConf.WriteBool("ShowOfflineUsers", show_offline_users); 
    417497    licqConf.WriteBool("ShowIgnoredUsres", show_ignored_users); 
    418498    licqConf.WriteBool("EnterSends", enter_sends); 
    419499    licqConf.WriteBool("FlashEvents", flash_events); 
     500    licqConf.WriteBool("RecvColors", recv_colors); 
    420501    licqConf.WriteBool("ShowTimestamp", show_convo_timestamp); 
    421502    licqConf.WriteStr("TimestampFormat", timestamp_format); 
     
    426507    // Refresh the colors 
    427508    do_colors(); 
     509 
     510    // Refresh contact list 
     511    contact_list_refresh(); 
    428512} 
    429513 
     
    465549    licqConf.ReadBool("EnterSends", enter_sends, true); 
    466550    licqConf.ReadBool("FlashEvents", flash_events, true); 
     551    licqConf.ReadBool("RecvColors", recv_colors, true); 
    467552    licqConf.ReadBool("ShowTimestamp", show_convo_timestamp, true); 
    468553    licqConf.ReadStr("TimestampFormat", timestamp_format, "%H:%M:%S"); 
     554     
     555    // Auto logon 
     556    licqConf.ReadNum("AutoLogon", auto_logon, 0); 
    469557} 
    470558