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);