~ubuntu-branches/ubuntu/karmic/psi/karmic

« back to all changes in this revision

Viewing changes to src/psi_profiles.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Jan Niehusmann
  • Date: 2006-01-20 00:20:36 UTC
  • mfrom: (1.2.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20060120002036-7nw6yo6totip0ee5
Tags: 0.10-2
* Added upstream changelog (Closes: Bug#327748)
* Mention --no-gpg and --no-gpg-agent in manpage (Closes: Bug#204416)

Show diffs side-by-side

added added

removed removed

Lines of Context:
30
30
#include"contactview.h"
31
31
#include"xmpp_xmlcommon.h"
32
32
#include"fancylabel.h"
 
33
#include"advwidget.h"
33
34
 
34
35
using namespace XMPP;
35
36
using namespace XMLHelper;
64
65
        opt_log = TRUE;
65
66
        opt_reconn = FALSE;
66
67
        opt_ignoreSSLWarnings = false;
67
 
        opt_passphrase = false;
68
 
        pgpPassphrase = "";
69
68
        pgpSecretKeyID = "";
70
69
 
71
70
        proxy_index = 0;
117
116
        a.appendChild(textTag(doc, "OLR", olr_string));
118
117
        a.appendChild(textTag(doc, "pgpSecretKeyID", pgpSecretKeyID));
119
118
 
120
 
        if(opt_passphrase)
121
 
                a.appendChild(textTag(doc, "pgpPassphrase", encodePassword(pgpPassphrase, jid) ));
122
 
 
123
119
        QDomElement r = doc.createElement("roster");
124
120
        a.appendChild(r);
125
121
        Roster::ConstIterator rit = roster.begin();
245
241
 
246
242
        // read password (we must do this after reading the jid, to decode properly)
247
243
        readEntry(a, "password", &pass);
248
 
        if(pass.isEmpty())
249
 
                opt_pass = FALSE;
250
 
        else {
 
244
        if(!pass.isEmpty()) {
 
245
                opt_pass = TRUE;
251
246
                pass = decodePassword(pass, jid);
252
 
                opt_pass = TRUE;
253
247
        }
254
248
 
255
249
        readEntry(a, "resource", &resource);
257
251
        readEntry(a, "OLR", &olr_string);
258
252
        readEntry(a, "pgpSecretKeyID", &pgpSecretKeyID);
259
253
 
260
 
        QDomElement pp = findSubTag(a, "pgpPassphrase", &found);
261
 
        if(found) {
262
 
                opt_passphrase = true;
263
 
                pgpPassphrase = decodePassword(tagContent(pp), jid);
264
 
        }
265
 
        else
266
 
                opt_passphrase = false;
267
 
 
268
254
        QDomElement r = findSubTag(a, "roster", &found);
269
255
        if(found) {
270
256
                for(QDomNode n = r.firstChild(); !n.isNull(); n = n.nextSibling()) {
348
334
        // prefs
349
335
        prefs.useleft = FALSE;
350
336
        prefs.singleclick = FALSE;
 
337
        prefs.hideMenubar = TRUE;
351
338
        prefs.defaultAction = 1;
352
339
        prefs.delChats = dcHour;
353
340
        prefs.showJoins = TRUE;
354
341
        prefs.browser = 0;
355
342
        prefs.customBrowser = "";
356
343
        prefs.customMailer = "";
357
 
        prefs.alwaysOnTop = win ? TRUE : FALSE;
 
344
        prefs.alwaysOnTop = FALSE;
358
345
        prefs.keepSizes = TRUE;
359
346
        prefs.ignoreHeadline = FALSE;
360
347
        prefs.ignoreNonRoster = FALSE;
396
383
        prefs.chatSoftReturn = true;
397
384
        prefs.showGroupCounts = true;
398
385
        prefs.smallChats = false;
 
386
        prefs.chatLineEdit = true;
 
387
        prefs.useTabs = false;
 
388
        prefs.usePerTabCloseButton = true;
 
389
        prefs.putTabsAtBottom = false;
 
390
        prefs.autoRosterSize = false;
 
391
        prefs.autoRosterSizeGrowTop = false;
 
392
        prefs.autoResolveNicksOnAdd = false;
 
393
        prefs.chatBgImage = "";
 
394
        prefs.rosterBgImage = "";
 
395
        prefs.autoCopy = false;
399
396
 
400
397
        prefs.sp.clear();
401
398
        prefs.sp.set(QObject::tr("Away from desk"), QObject::tr("I am away from my desk.  Leave a message."));
410
407
        prefs.sp.set(QObject::tr("Greece"), QObject::tr("I have gone to a far away place.  I will be back someday!"));
411
408
        prefs.recentStatus.clear();
412
409
 
413
 
#ifdef Q_WS_MAC
414
 
        prefs.color[cOnline]    = QColor("#31549F");
415
 
        prefs.color[cListBack]  = QColor("#F0F0F0");
416
 
        prefs.color[cAway]      = QColor("#3A8268");
417
 
        prefs.color[cDND]       = QColor("#800000");
418
 
        prefs.color[cOffline]   = QColor("#000000");
419
 
        prefs.color[cGroupFore] = QColor("#000000");
420
 
        prefs.color[cGroupBack] = QColor("#9CBCFE");
421
 
        prefs.color[cAnimFront] = QColor("#FF0000");
422
 
        prefs.color[cAnimBack]  = QColor("#000000");
423
 
#else
424
 
        prefs.color[cOnline]    = QColor("#0060C0");
425
 
        prefs.color[cListBack]  = QColor("#C0C0C0");
426
 
        prefs.color[cAway]      = QColor("#008080");
427
 
        prefs.color[cDND]       = QColor("#800000");
428
 
        prefs.color[cOffline]   = QColor("#000000");
429
 
        prefs.color[cGroupFore] = QColor("#000000");
430
 
        prefs.color[cGroupBack] = QColor("#FFFFFF");
431
 
        prefs.color[cAnimFront] = QColor("#FF0000");
432
 
        prefs.color[cAnimBack]  = QColor("#000000");
433
 
#endif
 
410
        prefs.color[cOnline]    = QColor("#000000");
 
411
        prefs.color[cListBack]  = QColor("#FFFFFF");
 
412
        prefs.color[cAway]      = QColor("#004BB4");
 
413
        prefs.color[cDND]       = QColor("#7E0000");
 
414
        prefs.color[cOffline]   = QColor("#646464");
 
415
        prefs.color[cProfileFore] = QColor("#FFFFFF");
 
416
        prefs.color[cProfileBack] = QColor("#969696");
 
417
        prefs.color[cGroupFore] = QColor("#5A5A5A");
 
418
        prefs.color[cGroupBack] = QColor("#F0F0F0");
 
419
        prefs.color[cAnimFront] = QColor("#000000");
 
420
        prefs.color[cAnimBack]  = QColor("#969696");
434
421
 
435
422
        prefs.font[fRoster] = QApplication::font().toString();
436
423
        prefs.font[fMessage] = QApplication::font().toString();
449
436
                prefs.smallFontSize = minimumFontSize;
450
437
        FancyLabel::setSmallFontSize( prefs.smallFontSize );
451
438
 
452
 
        prefs.clNewHeadings = true;
 
439
        prefs.clNewHeadings = false;
 
440
        prefs.chatOpacity = 100;
 
441
        prefs.rosterOpacity = 95;
 
442
        prefs.outlineHeadings = false;
453
443
 
454
444
        prefs.player = "play";
455
445
        prefs.noAwaySound = FALSE;
470
460
 
471
461
        prefs.sizeEventDlg = EventDlg::defaultSize();
472
462
        prefs.sizeChatDlg = ChatDlg::defaultSize();
 
463
        prefs.sizeTabDlg = ChatDlg::defaultSize(); //TODO: no!
473
464
 
474
465
        prefs.jidComplete = true;
475
466
        prefs.grabUrls = false;
500
491
                        tb[i] = tbDef;
501
492
                        tb[i].index = i + 1;
502
493
                }
503
 
                
 
494
 
504
495
                bool defaultEnableToolbars;
505
496
#ifdef Q_WS_MAC
506
497
                defaultEnableToolbars = false;
561
552
        prefs.ppHideTime    = 10000; // 10 sec
562
553
        prefs.ppBorderColor = QColor (0x52, 0x97, 0xF9);
563
554
 
 
555
        // Bouncing of the dock (Mac OS X)
 
556
        prefs.bounceDock = Options::BounceForever;
 
557
 
564
558
        // lockdown
565
559
        prefs.lockdown.roster   = false;
566
560
        prefs.lockdown.options  = false;
576
570
        prefs.defaultRosterIconset = "default";
577
571
 
578
572
        prefs.serviceRosterIconset.clear();
579
 
        prefs.serviceRosterIconset["transport"] = "transport";
580
 
        prefs.serviceRosterIconset["aim"]       = "aim";
581
 
        prefs.serviceRosterIconset["gadugadu"]  = "gadugadu";
582
 
        prefs.serviceRosterIconset["icq"]       = "icq";
583
 
        prefs.serviceRosterIconset["msn"]       = "msn";
584
 
        prefs.serviceRosterIconset["yahoo"]     = "yahoo";
585
 
        prefs.serviceRosterIconset["sms"]       = "sms";
 
573
        prefs.serviceRosterIconset["transport"] = "crystal-service.jisp";
 
574
        prefs.serviceRosterIconset["aim"]       = "crystal-aim.jisp";
 
575
        prefs.serviceRosterIconset["gadugadu"]  = "crystal-gadugadu.jisp";
 
576
        prefs.serviceRosterIconset["icq"]       = "crystal-icq.jisp";
 
577
        prefs.serviceRosterIconset["msn"]       = "crystal-msn.jisp";
 
578
        prefs.serviceRosterIconset["yahoo"]     = "crystal-yahoo.jisp";
 
579
        prefs.serviceRosterIconset["sms"]       = "crystal-sms.jisp";
586
580
 
587
581
        prefs.customRosterIconset.clear();
588
582
 
601
595
 
602
596
        // auto-auth
603
597
        prefs.autoAuth = false;
604
 
        
 
598
 
 
599
        // Notify authorization
 
600
        prefs.notifyAuth = true;
 
601
 
605
602
        // message events
606
603
        prefs.messageEvents = true;
607
604
 
612
609
        prefs.eventPriorityAuth     = 2;
613
610
        prefs.eventPriorityFile     = 3;
614
611
 
 
612
        // Last used path remembering
 
613
        prefs.lastPath = QDir::homeDirPath();
 
614
        prefs.lastSavePath = QDir::homeDirPath();
 
615
 
615
616
        // data transfer
616
617
        prefs.dtPort = 8010;
617
618
        prefs.dtExternal = "";
618
619
 
619
620
        // Avatars
620
 
        //prefs.avatarsEnabled = true;
621
 
        //prefs.avatarsChatdlgEnabled = true;
622
 
        //prefs.avatarsSize = 48;
 
621
        prefs.avatarsEnabled = true;
 
622
        prefs.avatarsChatdlgEnabled = true;
 
623
        prefs.avatarsSize = 48;
 
624
 
 
625
        // global accelerators
 
626
        prefs.globalAccels.clear();
 
627
        prefs.globalAccels.append(QKeySequence()); // process next event
 
628
        prefs.globalAccels.append(QKeySequence()); // show/hide roster
 
629
 
 
630
        // advanced widget
 
631
        GAdvancedWidget::setStickEnabled( false ); //until this is bugless
 
632
        GAdvancedWidget::setStickToWindows( false ); //again
 
633
        GAdvancedWidget::setStickAt( 5 );
623
634
}
624
635
 
625
636
static Options::ToolbarPrefs loadToolbarData( const QDomElement &e )
708
719
                        p_general.appendChild(p_roster);
709
720
 
710
721
                        p_roster.appendChild(textTag(doc, "useleft", prefs.useleft));
 
722
                        p_roster.appendChild(textTag(doc, "rosterBgImage", prefs.rosterBgImage));
711
723
                        p_roster.appendChild(textTag(doc, "singleclick", prefs.singleclick));
 
724
                        p_roster.appendChild(textTag(doc, "hideMenubar", prefs.hideMenubar));
712
725
                        p_roster.appendChild(textTag(doc, "defaultAction", prefs.defaultAction));
713
726
                        p_roster.appendChild(textTag(doc, "useTransportIconsForContacts", prefs.useTransportIconsForContacts));
714
727
 
734
747
                }
735
748
 
736
749
                // Avatars
737
 
                //{
738
 
                        //QDomElement p_avatars = doc.createElement("avatars");
739
 
                        //p_general.appendChild(p_avatars);
740
 
                        //p_avatars.appendChild(textTag(doc, "use", prefs.avatarsEnabled));
741
 
                        //p_avatars.appendChild(textTag(doc, "use_chatdlg", prefs.avatarsChatdlgEnabled));
742
 
                        //p_avatars.appendChild(textTag(doc, "size", prefs.avatarsSize));
743
 
                //}
 
750
                {
 
751
                        QDomElement p_avatars = doc.createElement("avatars");
 
752
                        p_general.appendChild(p_avatars);
 
753
                        p_avatars.appendChild(textTag(doc, "use", prefs.avatarsEnabled));
 
754
                        p_avatars.appendChild(textTag(doc, "use_chatdlg", prefs.avatarsChatdlgEnabled));
 
755
                        p_avatars.appendChild(textTag(doc, "size", prefs.avatarsSize));
 
756
                }
744
757
                {
745
758
                        QDomElement p_misc = doc.createElement("misc");
746
759
                        p_general.appendChild(p_misc);
747
760
 
 
761
                        p_misc.appendChild(textTag(doc, "chatBgImage", prefs.chatBgImage));
748
762
                        p_misc.appendChild(textTag(doc, "smallChats", prefs.smallChats));
 
763
                        p_misc.appendChild(textTag(doc, "chatLineEdit", prefs.chatLineEdit));
 
764
                        p_misc.appendChild(textTag(doc, "useTabs", prefs.useTabs));
 
765
                        p_misc.appendChild(textTag(doc, "usePerTabCloseButton", prefs.usePerTabCloseButton));
 
766
                        p_misc.appendChild(textTag(doc, "putTabsAtBottom", prefs.putTabsAtBottom));
 
767
                        p_misc.appendChild(textTag(doc, "autoRosterSize", prefs.autoRosterSize));
 
768
                        p_misc.appendChild(textTag(doc, "autoRosterSizeGrowTop", prefs.autoRosterSizeGrowTop));
 
769
                        p_misc.appendChild(textTag(doc, "autoResolveNicksOnAdd", prefs.autoResolveNicksOnAdd));
749
770
                        p_misc.appendChild(textTag(doc, "delChats", prefs.delChats));
750
771
                        p_misc.appendChild(textTag(doc, "showJoins", prefs.showJoins));
751
772
                        p_misc.appendChild(textTag(doc, "browser", prefs.browser));
768
789
                        p_misc.appendChild(textTag(doc, "jidComplete", prefs.jidComplete));
769
790
                        p_misc.appendChild(textTag(doc, "grabUrls", prefs.grabUrls));
770
791
                        p_misc.appendChild(textTag(doc, "messageEvents", prefs.messageEvents));
 
792
                        p_misc.appendChild(textTag(doc, "lastPath", prefs.lastPath));
 
793
                        p_misc.appendChild(textTag(doc, "lastSavePath", prefs.lastSavePath));
 
794
                        p_misc.appendChild(textTag(doc, "autoCopy", prefs.autoCopy));
771
795
                }
772
796
                {
773
797
                        QDomElement p_dock = doc.createElement("dock");
801
825
 
802
826
                p_events.appendChild(textTag(doc, "alertstyle", prefs.alertStyle));
803
827
                p_events.appendChild(textTag(doc, "autoAuth", prefs.autoAuth));
804
 
                
 
828
                p_events.appendChild(textTag(doc, "notifyAuth", prefs.notifyAuth));
 
829
 
805
830
 
806
831
                {
807
832
                        QDomElement p_receive = doc.createElement("receive");
877
902
                p.appendChild(p_lnf);
878
903
 
879
904
                p_lnf.appendChild(textTag(doc, "newHeadings", prefs.clNewHeadings));
 
905
                p_lnf.appendChild(textTag(doc, "chat-opacity", prefs.chatOpacity));
 
906
                p_lnf.appendChild(textTag(doc, "roster-opacity", prefs.rosterOpacity));
 
907
                p_lnf.appendChild(textTag(doc, "outline-headings", prefs.outlineHeadings));
880
908
 
881
909
                {
882
910
                        QDomElement tag = doc.createElement("colors");
887
915
                        tag.appendChild(textTag(doc, "away", prefs.color[cAway].name() ));
888
916
                        tag.appendChild(textTag(doc, "dnd", prefs.color[cDND].name() ));
889
917
                        tag.appendChild(textTag(doc, "offline", prefs.color[cOffline].name() ));
 
918
                        tag.appendChild(textTag(doc, "profilefore", prefs.color[cProfileFore].name() ));
 
919
                        tag.appendChild(textTag(doc, "profileback", prefs.color[cProfileBack].name() ));
890
920
                        tag.appendChild(textTag(doc, "groupfore", prefs.color[cGroupFore].name() ));
891
921
                        tag.appendChild(textTag(doc, "groupback", prefs.color[cGroupBack].name() ));
892
922
                        tag.appendChild(textTag(doc, "animfront", prefs.color[cAnimFront].name() ));
935
965
 
936
966
                p_sizes.appendChild(textTag(doc, "eventdlg", prefs.sizeEventDlg));
937
967
                p_sizes.appendChild(textTag(doc, "chatdlg", prefs.sizeChatDlg));
 
968
                p_sizes.appendChild(textTag(doc, "tabdlg", prefs.sizeTabDlg));
938
969
        }
939
970
 
940
971
        {
1008
1039
                pp.appendChild(textTag(doc, "hideTime", prefs.ppHideTime));
1009
1040
                pp.appendChild(textTag(doc, "borderColor", prefs.ppBorderColor.name()));
1010
1041
        }
 
1042
        
 
1043
        {
 
1044
                // Bouncing dock (on Mac OS X)
 
1045
                QDomElement dock = doc.createElement("dock");
 
1046
                p.appendChild(dock);
 
1047
                switch (prefs.bounceDock) {
 
1048
                        case Options::NoBounce :
 
1049
                                dock.setAttribute("bounce", "never");
 
1050
                                break;
 
1051
                        case Options::BounceOnce :
 
1052
                                dock.setAttribute("bounce", "once");
 
1053
                                break;
 
1054
                        case Options::BounceForever :
 
1055
                                dock.setAttribute("bounce", "forever");
 
1056
                                break;
 
1057
                        default:
 
1058
                                break;
 
1059
                }
 
1060
        }
1011
1061
 
1012
1062
        {
1013
1063
                //group chat
1108
1158
                p_dt.appendChild( textTag(doc, "external", prefs.dtExternal ) );
1109
1159
        }
1110
1160
 
 
1161
        {
 
1162
                // global accelerators
 
1163
                QDomElement p_globalAccel = doc.createElement("globalAccel");
 
1164
                p.appendChild(p_globalAccel);
 
1165
 
 
1166
                QStringList accelNames;
 
1167
                accelNames << "processNextEvent";
 
1168
                accelNames << "showHideRoster";
 
1169
 
 
1170
                QStringList::Iterator it1 = accelNames.begin();
 
1171
                QValueList<QKeySequence>::iterator it2 = prefs.globalAccels.begin();
 
1172
 
 
1173
                for ( ; it2 != prefs.globalAccels.end(); ++it1, ++it2 ) {
 
1174
                        QDomElement item = doc.createElement("command");
 
1175
                        p_globalAccel.appendChild(item);
 
1176
                        item.setAttribute("type", *it1);
 
1177
                        item.appendChild( doc.createTextNode(*it2) );
 
1178
                }
 
1179
        }
 
1180
 
 
1181
        {
 
1182
                // advanced widget
 
1183
                QDomElement p_advWidget = doc.createElement("advancedWidget");
 
1184
                p.appendChild(p_advWidget);
 
1185
 
 
1186
                QDomElement stick = doc.createElement("sticky");
 
1187
                p_advWidget.appendChild(stick);
 
1188
 
 
1189
                setBoolAttribute(stick, "enabled", GAdvancedWidget::stickEnabled());
 
1190
                stick.appendChild( textTag(doc, "offset", GAdvancedWidget::stickAt()) );
 
1191
                stick.appendChild( textTag(doc, "stickToWindows", GAdvancedWidget::stickToWindows()) );
 
1192
        }
 
1193
 
1111
1194
        QFile f(fname);
1112
1195
        if(!f.open(IO_WriteOnly))
1113
1196
                return FALSE;
1211
1294
 
1212
1295
                        QDomElement p_roster = findSubTag(p_general, "roster", &found);
1213
1296
                        if(found) {
 
1297
                                readEntry(p_roster, "rosterBgImage", &prefs.rosterBgImage);
1214
1298
                                readBoolEntry(p_roster, "useleft", &prefs.useleft);
1215
1299
                                readBoolEntry(p_roster, "singleclick", &prefs.singleclick);
 
1300
                                readBoolEntry(p_roster, "hideMenubar", &prefs.hideMenubar);
1216
1301
                                readNumEntry(p_roster, "defaultAction", &prefs.defaultAction);
1217
1302
                                readBoolEntry(p_roster, "useTransportIconsForContacts", &prefs.useTransportIconsForContacts);
1218
1303
 
1241
1326
                        }
1242
1327
 
1243
1328
                        // Avatars
1244
 
                        //QDomElement avTag = findSubTag(p_general, "avatars", &found);
1245
 
                        //if(found) {
1246
 
                        //      readBoolEntry(avTag, "use", &prefs.avatarsEnabled);
1247
 
                        //      readBoolEntry(avTag, "use_chatdlg", &prefs.avatarsChatdlgEnabled);
1248
 
                        //      readNumEntry(avTag, "size", &prefs.avatarsSize);
1249
 
                        //}
 
1329
                        QDomElement avTag = findSubTag(p_general, "avatars", &found);
 
1330
                        if(found) {
 
1331
                                readBoolEntry(avTag, "use", &prefs.avatarsEnabled);
 
1332
                                readBoolEntry(avTag, "use_chatdlg", &prefs.avatarsChatdlgEnabled);
 
1333
                                readNumEntry(avTag, "size", &prefs.avatarsSize);
 
1334
                        }
1250
1335
 
1251
1336
                        QDomElement tag = findSubTag(p_general, "misc", &found);
1252
1337
                        if(found) {
 
1338
                                readEntry(tag, "chatBgImage", &prefs.chatBgImage);
1253
1339
                                readNumEntry(tag, "delChats", &prefs.delChats);
1254
1340
                                readBoolEntry(tag, "showJoins", &prefs.showJoins);
1255
1341
                                readNumEntry(tag, "browser", &prefs.browser);
1272
1358
                                readBoolEntry(tag, "jidComplete", &prefs.jidComplete);
1273
1359
                                readBoolEntry(tag, "grabUrls", &prefs.grabUrls);
1274
1360
                                readBoolEntry(tag, "smallChats", &prefs.smallChats);
 
1361
                                readBoolEntry(tag, "chatLineEdit", &prefs.chatLineEdit);
 
1362
                                readBoolEntry(tag, "useTabs", &prefs.useTabs);
 
1363
                                readBoolEntry(tag, "usePerTabCloseButton", &prefs.usePerTabCloseButton);
 
1364
                                readBoolEntry(tag, "putTabsAtBottom", &prefs.putTabsAtBottom);
 
1365
                                readBoolEntry(tag, "autoRosterSize", &prefs.autoRosterSize);
 
1366
                                readBoolEntry(tag, "autoRosterSizeGrowTop", &prefs.autoRosterSizeGrowTop);
 
1367
                                readBoolEntry(tag, "autoResolveNicksOnAdd", &prefs.autoResolveNicksOnAdd);
1275
1368
                                readBoolEntry(tag, "messageEvents", &prefs.messageEvents);
 
1369
                                readEntry(tag, "lastPath", &prefs.lastPath);
 
1370
                                readEntry(tag, "lastSavePath", &prefs.lastSavePath);
 
1371
                                readBoolEntry(tag, "autoCopy", &prefs.autoCopy);
1276
1372
                        }
1277
1373
 
1278
1374
                        tag = findSubTag(p_general, "dock", &found);
1302
1398
 
1303
1399
                        readNumEntry(p_events, "alertstyle", &prefs.alertStyle);
1304
1400
                        readBoolEntry(p_events, "autoAuth", &prefs.autoAuth);
 
1401
                        readBoolEntry(p_events, "notifyAuth", &prefs.notifyAuth);
1305
1402
 
1306
1403
                        QDomElement tag = findSubTag(p_events, "receive", &found);
1307
1404
                        if(found) {
1383
1480
                        bool found;
1384
1481
 
1385
1482
                        readBoolEntry(p_lnf, "newHeadings", &prefs.clNewHeadings);
 
1483
                        readBoolEntry(p_lnf, "outline-headings", &prefs.outlineHeadings);
 
1484
                        readNumEntry(p_lnf, "chat-opacity", &prefs.chatOpacity);
 
1485
                        readNumEntry(p_lnf, "roster-opacity", &prefs.rosterOpacity);
1386
1486
 
1387
1487
                        QDomElement tag = findSubTag(p_lnf, "colors", &found);
1388
1488
                        if(found) {
1393
1493
                                readColorEntry(tag, "offline", &prefs.color[cOffline]);
1394
1494
                                readColorEntry(tag, "groupfore", &prefs.color[cGroupFore]);
1395
1495
                                readColorEntry(tag, "groupback", &prefs.color[cGroupBack]);
 
1496
                                readColorEntry(tag, "profilefore", &prefs.color[cProfileFore]);
 
1497
                                readColorEntry(tag, "profileback", &prefs.color[cProfileBack]);
1396
1498
                                readColorEntry(tag, "animfront", &prefs.color[cAnimFront]);
1397
1499
                                readColorEntry(tag, "animback", &prefs.color[cAnimBack]);
1398
1500
                        }
1433
1535
                if(found) {
1434
1536
                        readSizeEntry(p_sizes, "eventdlg", &prefs.sizeEventDlg);
1435
1537
                        readSizeEntry(p_sizes, "chatdlg", &prefs.sizeChatDlg);
 
1538
                        readSizeEntry(p_sizes, "tabdlg", &prefs.sizeTabDlg);
1436
1539
                }
1437
1540
 
1438
1541
 
1532
1635
                        xmlToStringList(p_groupchat, "nickcolors", &prefs.gcNickColors);
1533
1636
                }
1534
1637
 
 
1638
                // Bouncing dock icon (Mac OS X)
 
1639
                QDomElement p_dock = findSubTag(p, "dock", &found);
 
1640
                if(found) {
 
1641
                        if (p_dock.attribute("bounce") == "once") {
 
1642
                                prefs.bounceDock = Options::BounceOnce;
 
1643
                        }
 
1644
                        else if (p_dock.attribute("bounce") == "forever") {
 
1645
                                prefs.bounceDock = Options::BounceForever;
 
1646
                        }
 
1647
                        else if (p_dock.attribute("bounce") == "never") {
 
1648
                                prefs.bounceDock = Options::NoBounce;
 
1649
                        }
 
1650
                }
 
1651
 
1535
1652
                QDomElement p_popup = findSubTag(p, "popups", &found);
1536
1653
                if(found) {
1537
1654
                        readBoolEntry(p_popup, "on", &prefs.ppIsOn);
1624
1741
                        readNumEntry(p_dt, "port", &prefs.dtPort);
1625
1742
                        readEntry(p_dt, "external", &prefs.dtExternal);
1626
1743
                }
 
1744
 
 
1745
                QDomElement p_globalAccel = findSubTag(p, "globalAccel", &found);
 
1746
                if (found) {
 
1747
                        QMap<QString, int> accelNames;
 
1748
                        accelNames["processNextEvent"] = 0;
 
1749
                        accelNames["showHideRoster"] = 1;
 
1750
 
 
1751
                        for (QDomNode n = p_globalAccel.firstChild(); !n.isNull(); n = n.nextSibling()) {
 
1752
                                QDomElement i = n.toElement();
 
1753
                                if ( i.isNull() )
 
1754
                                        continue;
 
1755
 
 
1756
                                if ( i.tagName() == "command" && i.hasAttribute("type") ) {
 
1757
                                        int n = accelNames[i.attribute("type")];
 
1758
                                        prefs.globalAccels[n] = QKeySequence(i.text());
 
1759
                                }
 
1760
                        }
 
1761
                }
 
1762
 
 
1763
                QDomElement p_advWidget = findSubTag(p, "advancedWidget", &found);
 
1764
                if (found) {
 
1765
                        QDomElement stick = findSubTag(p_advWidget, "sticky", &found);
 
1766
                        if (found) {
 
1767
                                bool enabled, toWindows;
 
1768
                                int  offs;
 
1769
 
 
1770
                                readBoolAttribute(stick, "enabled", &enabled);
 
1771
                                readNumEntry(stick, "offset", &offs);
 
1772
                                readBoolEntry(stick, "stickToWindows", &toWindows);
 
1773
 
 
1774
                                GAdvancedWidget::setStickEnabled( enabled );
 
1775
                                GAdvancedWidget::setStickAt( offs );
 
1776
                                GAdvancedWidget::setStickToWindows( toWindows );
 
1777
                        }
 
1778
                }
1627
1779
        }
1628
1780
 
1629
1781
        return TRUE;