diff -ru -X exclude psi-clean/libpsi/psiwidgets/psitextview.cpp psi/libpsi/psiwidgets/psitextview.cpp --- psi-clean/libpsi/psiwidgets/psitextview.cpp Thu Apr 01 09:44:40 2004 +++ psi/libpsi/psiwidgets/psitextview.cpp Mon Apr 19 14:50:32 2004 @@ -242,6 +242,9 @@ y = ypos; } + y+=2; cy+=2; + p->setClipping(FALSE); + if ( !icon ) { p->fillRect( x, y, width, height, cg.dark() ); return; diff -ru -X exclude psi-clean/src/common.cpp psi/src/common.cpp --- psi-clean/src/common.cpp Sun Mar 21 15:44:42 2004 +++ psi/src/common.cpp Mon Apr 19 14:54:52 2004 @@ -635,11 +635,10 @@ continue; if(ePos == -1 || n < ePos || (rx.matchedLength() > foundLen && n < ePos + foundLen)) { - // there must be whitespace at least on one side of the emoticon if ( ( n == 0 ) || ( n+rx.matchedLength() == (int)str.length() ) || - ( n > 0 && str[n-1].isSpace() ) || - ( n+rx.matchedLength() < (int)str.length() && str[n+rx.matchedLength()].isSpace() ) ) + ( n > 0 && ( !option.spaceEmoticons || str[n+rx.matchedLength()].isSpace() ) ) || + ( n+rx.matchedLength() < (int)str.length() && ( !option.spaceEmoticons || str[n+rx.matchedLength()].isSpace() ) ) ) { ePos = n; closest = icon; diff -ru -X exclude psi-clean/src/common.h psi/src/common.h --- psi-clean/src/common.h Thu Mar 04 22:04:00 2004 +++ psi/src/common.h Mon Apr 19 14:54:12 2004 @@ -120,7 +120,7 @@ QString player; QString customBrowser, customMailer; - bool ignoreHeadline, ignoreNonRoster, excludeGroupChatsFromIgnore, scrollTo, keepSizes, useEmoticons, alertOpenChats, useStatusLinebreak; + bool ignoreHeadline, ignoreNonRoster, excludeGroupChatsFromIgnore, scrollTo, keepSizes, useEmoticons, alertOpenChats, useStatusLinebreak, spaceEmoticons; bool emoticonsInChatDlg, emoticonsInEventDlg, emoticonsInGroupChatDlg, emoticonsInPopup, emoticonsInToolTip; bool raiseChatWindow, showSubjects, showCounter, chatSays, showTimeStamps, showGroupCounts, chatSoftReturn; diff -ru -X exclude psi-clean/src/eventdlg.cpp psi/src/eventdlg.cpp --- psi-clean/src/eventdlg.cpp Thu Apr 01 09:44:50 2004 +++ psi/src/eventdlg.cpp Mon Apr 19 14:50:32 2004 @@ -1659,10 +1659,12 @@ d->mle->moveCursor(QTextEdit::MoveHome, false); d->mle->setTextFormat(RichText); + txt = linkify(txt); + if(option.useEmoticons && option.emoticonsInEventDlg) txt = emoticonify(txt); - d->mle->setText("" + linkify(txt) + ""); + d->mle->setText("" + txt + ""); d->le_subj->setText(m.subject()); d->le_subj->setCursorPosition(0); diff -ru -X exclude psi-clean/src/options/opt_iconset.cpp psi/src/options/opt_iconset.cpp --- psi-clean/src/options/opt_iconset.cpp Sat Jan 17 14:48:14 2004 +++ psi/src/options/opt_iconset.cpp Mon Apr 19 14:59:00 2004 @@ -459,6 +459,7 @@ IconsetEmoUI *d = (IconsetEmoUI *)w; opt->useEmoticons = d->ck_useEmoticons->isChecked(); + opt->spaceEmoticons = d->ck_spaceEmoticons->isChecked(); opt->emoticonsInChatDlg = d->ck_emotChat->isChecked(); opt->emoticonsInEventDlg = d->ck_emotEvent->isChecked(); opt->emoticonsInGroupChatDlg = d->ck_emotGroupChat->isChecked(); @@ -489,6 +490,7 @@ IconsetEmoUI *d = (IconsetEmoUI *)w; d->ck_useEmoticons->setChecked( opt->useEmoticons ); + d->ck_spaceEmoticons->setChecked( opt->spaceEmoticons ); d->ck_emotChat->setChecked( opt->emoticonsInChatDlg ); d->ck_emotEvent->setChecked( opt->emoticonsInEventDlg ); d->ck_emotGroupChat->setChecked( opt->emoticonsInGroupChatDlg ); @@ -514,6 +516,8 @@ customPal.setDisabled(customPal.inactive()); d->ck_useEmoticons->setEnabled(false); d->ck_useEmoticons->setPalette(customPal); + d->ck_spaceEmoticons->setEnabled(false); + d->ck_spaceEmoticons->setPalette(customPal); d->groupBox9->setEnabled(false); d->groupBox9->setPalette(customPal); @@ -557,6 +561,8 @@ else if ( e->type() == QEvent::User + 1 ) { // finish event d->ck_useEmoticons->setEnabled(true); d->ck_useEmoticons->unsetPalette(); + d->ck_spaceEmoticons->setEnabled(true); + d->ck_spaceEmoticons->unsetPalette(); d->groupBox9->setEnabled(true); d->groupBox9->unsetPalette(); @@ -566,6 +572,10 @@ bool checked = d->ck_useEmoticons->isChecked(); d->ck_useEmoticons->setChecked( true ); d->ck_useEmoticons->setChecked( checked ); + + checked = d->ck_spaceEmoticons->isChecked(); + d->ck_spaceEmoticons->setChecked( true ); + d->ck_spaceEmoticons->setChecked( checked ); d->progress->hide(); diff -ru -X exclude psi-clean/src/options/opt_iconset_emo.ui psi/src/options/opt_iconset_emo.ui --- psi-clean/src/options/opt_iconset_emo.ui Sun Sep 14 23:38:50 2003 +++ psi/src/options/opt_iconset_emo.ui Mon Apr 19 15:01:08 2004 @@ -28,6 +28,17 @@ Enable Emoticons + + + true + + + + + ck_spaceEmoticons + + + Require whitespace before/after emoticons true diff -ru -X exclude psi-clean/src/psi_profiles.cpp psi/src/psi_profiles.cpp --- psi-clean/src/psi_profiles.cpp Sun Mar 21 15:47:06 2004 +++ psi/src/psi_profiles.cpp Mon Apr 19 14:55:54 2004 @@ -390,6 +390,7 @@ prefs.asMessage = QObject::tr("Auto Status (idle)"); prefs.scrollTo = TRUE; prefs.useEmoticons = false; + prefs.spaceEmoticons = false; prefs.emoticonsInChatDlg = true; prefs.emoticonsInEventDlg = true; prefs.emoticonsInGroupChatDlg = true; @@ -826,6 +827,7 @@ p_misc.appendChild(textTag(doc, "excludeGroupChatIgnore", prefs.excludeGroupChatsFromIgnore)); p_misc.appendChild(textTag(doc, "scrollTo", prefs.scrollTo)); p_misc.appendChild(textTag(doc, "useEmoticons", prefs.useEmoticons)); + p_misc.appendChild(textTag(doc, "spaceEmoticons", prefs.spaceEmoticons)); p_misc.appendChild(textTag(doc, "emoticonsInChatDlg", prefs.emoticonsInChatDlg)); p_misc.appendChild(textTag(doc, "emoticonsInEventDlg", prefs.emoticonsInEventDlg)); p_misc.appendChild(textTag(doc, "emoticonsInGroupChatDlg", prefs.emoticonsInGroupChatDlg)); @@ -1428,6 +1430,7 @@ readBoolEntry(tag, "excludeGroupChatIgnore", &prefs.excludeGroupChatsFromIgnore); readBoolEntry(tag, "scrollTo", &prefs.scrollTo); readBoolEntry(tag, "useEmoticons", &prefs.useEmoticons); + readBoolEntry(tag, "spaceEmoticons", &prefs.spaceEmoticons); readBoolEntry(tag, "emoticonsInChatDlg", &prefs.emoticonsInChatDlg); readBoolEntry(tag, "emoticonsInEventDlg", &prefs.emoticonsInEventDlg); readBoolEntry(tag, "emoticonsInGroupChatDlg", &prefs.emoticonsInGroupChatDlg);