Pagina 1 di 2

[X Loris] Kopete: patch per importare emoticons e altro.

Inviato: ven 22 set 2006, 21:42
da gianogli
Navigando su internet ho trovato una cosa veramente interessante (poi magari gia' tutti la conoscevano...)

Sul sito del creatore di KmobileTools, che tra l'altro e' un ragazzo italiano, ho scoperto due patch per Kopete entrambe utili per gestire le emoticons.
1) La prima serve per correggere una imperfezione grafica di Kopete: quando si clicca nella chat window sull'icona delle emoticons puo' capitare di non visualizzare nella loro interezza le icone animate in quanto hanno uno spazio piu' grande di quello a loro concesso. Bene la prima patch permette di visualizzare le icone nella loro interezza e aggiunge una barra di scorrimento laterale per visualizzarle facilmente tutte.
2) La seconda path invece serve ad importare le icone!!! Durante una sessione di chat e' sufficiente cliccare con il tasto destro sull'emoticons e nel menu' che si apre compare la scritta "Import Emoticons". Cliccandoci sopra si apre una finestra dove assegnare all'icona animata una combinazione di tasti e il gioco e' fatto!

Il link delle patch e' questo:
http://rockman.altervista.org/?p=patches.php

C'e' un pero'... Le patch sono scritte per Kopete 0.12.0 e non funzionano (o meglio, solo la seconda non funziona!) su Kopete 0.12.2. Non sapendo programmare in C++ ma solo in C ho provato a dargli un'occhiata e credo di averle messe a posto. Ho compilato Kopete 0.12.2 con le 2 patch e sembra che funzioni tutto (ho testato solo il protocollo MSN). Se per caso vuoi patchare kopete con queste due (secondo me utilissime) patch te le spedisco come le ho usate io aggiungendo anche il tuo slackbuild modificato per usarle. Se vuoi creare il pacchetto patchato e metterlo nel repository... E ovviamente se qualche volenteroso ha voglia di testarle a fondo (e magari migliorarle...) per vedere se danno problemi...

Tra l'altro, se qualcuno ha voglia di scrivere al gruppo che gestisce la realizzazione di Kopete per avvertirli dell'esistenza di queste patch... Come ho detto prima mi sembrano utilissime e a questi due problemi non ero mai riuscito a trovare la soluzione da nessuna parte!!!

Ciao ciao...
GiAn

kopete-0.12_bigemoticons.patch

Codice: Seleziona tutto

diff -U 4 -H -b -w -B -E -d -i -r -- kopete-0.12-beta2-orig/kopete/kopete/chatwindow/emoticonselector.cpp kopete-0.12-beta2/kopete/kopete/chatwindow/emoticonselector.cpp
--- kopete-0.12-beta2-orig/kopete/kopete/chatwindow/emoticonselector.cpp	2006-03-21 03:19:20.000000000 +0100
+++ kopete-0.12-beta2/kopete/kopete/chatwindow/emoticonselector.cpp	2006-05-16 15:16:39.834384750 +0200
@@ -28,8 +28,10 @@
 #include <qlayout.h>
 #include <qobjectlist.h>
 #include <qtooltip.h>
 #include <qobjectlist.h>
+#include <kwin.h>
+#include <qdesktopwidget.h>
 
 #include <kdebug.h>
 
 EmoticonLabel::EmoticonLabel(const QString &emoticonText, const QString &pixmapPath, QWidget *parent, const char *name)
@@ -42,14 +44,8 @@
 	// Somehow QLabel doesn't tell a reasonable size when you use setMovie
 	// although it does it correctly for setPixmap. Therefore here is a little workaround
 	// to tell our minimum size.
 	QPixmap p(pixmapPath);
-    //
-    // Some of the custom icons are rather large
-    // so lets limit them to a maximum size for this display panel
-    //
-    if (p.width() > 32 || p.height() > 32)
-        p.resize(32, 32);
 	setMinimumSize(p.size());
 }
 
 void EmoticonLabel::mouseReleaseEvent(QMouseEvent*)
@@ -57,51 +53,68 @@
 	emit clicked(mText);
 }
 
 EmoticonSelector::EmoticonSelector(QWidget *parent, const char *name)
-	: QWidget(parent, name)
+  : KScrollView(parent, name)
 {
 //	kdDebug(14000) << k_funcinfo << "called." << endl;
 	lay = 0L;
+	emot_mainWidget = 0L;
 }
 
 void EmoticonSelector::prepareList(void)
 {
 //	kdDebug(14000) << k_funcinfo << "called." << endl;
+  if(deskRect.isEmpty() ) deskRect=QDesktopWidget().screenGeometry();
 	int row = 0;
 	int col = 0;
+	int curwidth=0;
+	int curheight=0;
+	int maxwidth=deskRect.width()-150;
+	int curmaxwidth=0;
+	int curmaxheight=0;
+    bool toscroll=false;
 	QMap<QString, QString> list = Kopete::Emoticons::self()->emoticonAndPicList();
-	int emoticonsPerRow = static_cast<int>(sqrt(list.count()));
-//	kdDebug(14000) << "emoticonsPerRow=" << emoticonsPerRow << endl;
 
+//	kdDebug(14000) << "emoticonsPerRow=" << emoticonsPerRow << endl;
 	if ( lay )
 	{
 		QObjectList *list = queryList( "EmoticonLabel" );
 //		kdDebug(14000) << k_funcinfo << "There are " << list->count() << " EmoticonLabels to delete." << endl;
 		list->setAutoDelete(true);
 		list->clear();
 		delete list;
 		delete lay;
+        delete emot_mainWidget;
 	}
-
-	lay = new QGridLayout(this, 0, 0, 4, 4, "emoticonLayout");
+	emot_mainWidget=new QWidget(viewport(), name() );
+	lay = new QGridLayout(emot_mainWidget, 0, 0, 4, 4, "emoticonLayout");
+	addChild(emot_mainWidget);
 	movieList.clear();
 	for (QMap<QString, QString>::Iterator it = list.begin(); it != list.end(); ++it )
 	{
-		QWidget *w = new EmoticonLabel(it.key(), it.data(), this);
+		QWidget *w = new EmoticonLabel(it.key(), it.data(), emot_mainWidget);
 		movieList.push_back( ((QLabel*)w)->movie() );
 		connect(w, SIGNAL(clicked(const QString&)), this, SLOT(emoticonClicked(const QString&)));
 //		kdDebug(14000) << "adding Emoticon to row=" << row << ", col=" << col << "." << endl;
 		lay->addWidget(w, row, col);
-		if ( col == emoticonsPerRow )
+		curheight=(curheight>w->height() ) ? curheight : w->height();
+		curwidth+=w->width()+4;
+		if ( curwidth>=maxwidth || col > static_cast<int>(sqrt(list.count()) ))
 		{
+			curmaxwidth=(curmaxwidth>curwidth) ? curmaxwidth : curwidth;
+            if(curmaxheight+curheight < (deskRect.height() - 150)) curmaxheight+= 4 + curheight;
+            else toscroll=true;
+			curheight=0;
+			curwidth=0;
 			col = 0;
 			row++;
 		}
 		else
 			col++;
 	}
-	resize(minimumSizeHint());
+    setMinimumSize( lay->sizeHint().width() + ( (toscroll)?20:0),
+                    ((toscroll) ? curmaxheight : lay->sizeHint().height() ) );
 }
 
 void EmoticonSelector::emoticonClicked(const QString &str)
 {
Only in kopete-0.12-beta2/kopete/kopete/chatwindow: emoticonselector.cpp~
diff -U 4 -H -b -w -B -E -d -i -r -- kopete-0.12-beta2-orig/kopete/kopete/chatwindow/emoticonselector.h kopete-0.12-beta2/kopete/kopete/chatwindow/emoticonselector.h
--- kopete-0.12-beta2-orig/kopete/kopete/chatwindow/emoticonselector.h	2006-03-21 03:19:20.000000000 +0100
+++ kopete-0.12-beta2/kopete/kopete/chatwindow/emoticonselector.h	2006-05-16 14:04:45.328745000 +0200
@@ -21,8 +21,9 @@
 #define __emoticonselector_h__
 
 #include <qlabel.h>
 #include <qwidget.h>
+#include <kscrollview.h>
 class QGridLayout;
 class QHideEvent;
 class QShowEvent;
 
@@ -41,9 +42,9 @@
 	void mouseReleaseEvent(QMouseEvent*);
 	QString mText;
 };
 
-class EmoticonSelector : public QWidget
+class EmoticonSelector : public KScrollView
 {
 	Q_OBJECT
 
 public:
@@ -66,8 +67,10 @@
 	virtual void hideEvent( QHideEvent* );
 	virtual void showEvent( QShowEvent* );
 	MovieList movieList;
 	QGridLayout *lay;
+    QWidget *emot_mainWidget;
+    QRect deskRect;
 
 protected slots:
 	void emoticonClicked(const QString &);
 };
kopete-0.12_importemoticons.patch

Codice: Seleziona tutto

diff -U 4 -H -b -w -B -E -d -i -r -- kopete-0.12.2.orig/kopete/kopete/chatwindow/chatmessagepart.cpp kopete-0.12.2/kopete/kopete/chatwindow/chatmessagepart.cpp
--- kopete-0.12.2.orig/kopete/kopete/chatwindow/chatmessagepart.cpp	2006-05-31 02:24:04.000000000 +0200
+++ kopete-0.12.2/kopete/kopete/chatwindow/chatmessagepart.cpp	2006-06-02 12:34:05.476893500 +0200
@@ -34,8 +34,9 @@
 #include <qregexp.h>
 #include <qvaluelist.h>
 #include <qtimer.h>
 #include <qstylesheet.h>
+#include <qurloperator.h>
 
 // KHTML::DOM includes
 #include <dom/dom_doc.h>
 #include <dom/dom_text.h>
@@ -59,10 +60,12 @@
 #include <kstringhandler.h>
 #include <ktempfile.h>
 #include <kurldrag.h>
 #include <kio/netaccess.h>
+#include <kio/job.h>
 #include <kstandarddirs.h>
 #include <kiconloader.h>
+#include <kinputdialog.h>
 
 // Kopete includes
 #include "chatmemberslistwidget.h"
 #include "kopetecontact.h"
@@ -117,9 +120,9 @@
 public:
 	Private() 
 	 : tt(0L), manager(0L), scrollPressed(false),
 	   copyAction(0L), saveAction(0L), printAction(0L),
-	   closeAction(0L),copyURLAction(0L), currentChatStyle(0L), latestContact(0L),
+	   closeAction(0L),copyURLAction(0L), currentChatStyle(0L), latestContact(0L), importEmoticon(0L),
 	   latestDirection(Kopete::Message::Inbound), latestType(Kopete::Message::TypeNormal)
 	{}
 	
 	~Private()
@@ -143,8 +146,9 @@
 	KAction *saveAction;
 	KAction *printAction;
 	KAction *closeAction;
 	KAction *copyURLAction;
+	KAction *importEmoticon;
 
 	ChatWindowStyle *currentChatStyle;
 	Kopete::Contact *latestContact;
 	Kopete::Message::MessageDirection latestDirection;
@@ -258,8 +262,9 @@
 	d->copyAction = KStdAction::copy( this, SLOT(copy()), actionCollection() );
 	d->saveAction = KStdAction::saveAs( this, SLOT(save()), actionCollection() );
 	d->printAction = KStdAction::print( this, SLOT(print()),actionCollection() );
 	d->closeAction = KStdAction::close( this, SLOT(slotCloseView()),actionCollection() );
+	d->importEmoticon = new KAction( i18n( "Import Emoticon"), QString::fromLatin1( "importemot" ), 0, this, SLOT( slotImportEmoticon() ), actionCollection() );
 	d->copyURLAction = new KAction( i18n( "Copy Link Address" ), QString::fromLatin1( "editcopy" ), 0, this, SLOT( slotCopyURL() ), actionCollection() );
 
 	// read formatting override flags
 	readOverrides();
@@ -280,8 +285,49 @@
 	else
 		d->scrollPressed = true;
 }
 
+void ChatMessagePart::slotImportEmoticon()
+{
+       kdDebug() << "ChatMessagePart::slotImportEmoticon()" << d->activeElement.getAttribute("src") << endl;
+       QString emoticonString = KInputDialog::getText( i18n("Import Emoticon"), i18n("<qt><img src=\"%1\"><br>Insert here a shortcut that will be replaced by this emoticon (for instance :P ).</qt>").arg( d->activeElement.getAttribute("src").string() ) );
+       if (emoticonString.isNull() ) return;
+       QString xmldirname = KGlobal::dirs()->saveLocation( "emoticons",  QString::fromLatin1( "~custom" ), true );
+       // check if xmlname exists, if not create it
+       if(xmldirname.isNull() )
+       {
+               KMessageBox::error( view(), i18n("There was an error creating the directory for imported emoticons.") );
+               return;
+       }
+       QString xmlname= xmldirname + QString::fromLatin1("/emoticons.xml");
+       QFile xmlfile(xmlname);
+       QString text;
+       QRegExp emoticonMap("(<[\\s]*/[\\s]*messaging-emoticon-map[\\s]*>)");
+
+       if( xmlfile.exists() && xmlfile.open(IO_ReadOnly) )
+       {
+               text=static_cast<QCString>(xmlfile.readAll());
+               if(text.contains(emoticonMap)<=0) text=QString::null;
+               xmlfile.close();
+       }
+       if(text.isNull() )
+       {
+       text=  "<?xml version=\"1.0\"?>\n";
+       text+= "<messaging-emoticon-map >\n";
+       text+= "</messaging-emoticon-map>\n";
+       }
+       KIO::copy( d->activeElement.getAttribute("src").string(), xmldirname);
+       QString toAppend="<emoticon file=\"" + QFileInfo(d->activeElement.getAttribute("src").string() ).baseName() + "\">\n";
+       toAppend+="    <string>" + emoticonString + "</string>\n</emoticon>\n\\1";
+       xmlfile.open( IO_WriteOnly | IO_Truncate );
+       QTextStream stream( &xmlfile );
+       emoticonMap.setCaseSensitive(false);
+       text=text.replace(emoticonMap, toAppend);
+       stream << text;
+       xmlfile.close();
+       QTimer::singleShot(1500, Kopete::Emoticons::self(), SLOT(reload() ) );
+}
+
 void ChatMessagePart::save()
 {
 	KFileDialog dlg( QString::null, QString::fromLatin1( "text/html text/plain" ), view(), "fileSaveDialog", false );
 	dlg.setCaption( i18n( "Save Conversation" ) );
@@ -670,8 +716,9 @@
 		d->copyAction->setEnabled( hasSelection() );
 		d->copyAction->plug( chatWindowPopup );
 		d->saveAction->plug( chatWindowPopup );
 		d->printAction->plug( chatWindowPopup );
+		if( d->activeElement.tagName().lower() == "img" ) d->importEmoticon->plug( chatWindowPopup );
 		chatWindowPopup->insertSeparator();
 		d->closeAction->plug( chatWindowPopup );
 
 		connect( chatWindowPopup, SIGNAL( aboutToHide() ), chatWindowPopup, SLOT( deleteLater() ) );
diff -U 4 -H -b -w -B -E -d -i -r -- kopete-0.12.0.orig/kopete/kopete/chatwindow/chatmessagepart.h kopete-0.12.0/kopete/kopete/chatwindow/chatmessagepart.h
--- kopete-0.12.0.orig/kopete/kopete/chatwindow/chatmessagepart.h	2006-05-31 02:24:04.000000000 +0200
+++ kopete-0.12.0/kopete/kopete/chatwindow/chatmessagepart.h	2006-06-02 12:34:05.480893750 +0200
@@ -147,8 +147,9 @@
 
 	void slotCopyURL();
 
 	void slotCloseView( bool force = false );
+    void slotImportEmoticon();
 
 	/**
 	 * Do the actual style change.
 	 */
diff -U 4 -H -b -w -B -E -d -i -r -- kopete-0.12.0.orig/kopete/kopete/config/appearance/appearanceconfig.cpp kopete-0.12.0/kopete/kopete/config/appearance/appearanceconfig.cpp
--- kopete-0.12.0.orig/kopete/kopete/config/appearance/appearanceconfig.cpp	2006-05-31 02:24:04.000000000 +0200
+++ kopete-0.12.0/kopete/kopete/config/appearance/appearanceconfig.cpp	2006-06-02 12:34:05.480893750 +0200
@@ -514,9 +514,9 @@
 		for(unsigned int y = 0; y < themeQDir.count(); y++)
 		{
 			QStringList themes = themeQDir.entryList(QDir::Dirs, QDir::Name);
 			// We don't care for '.' and '..'
-			if ( themeQDir[y] != "." && themeQDir[y] != ".." )
+            if ( themeQDir[y] != "." && themeQDir[y] != ".." && themeQDir[y] != "~custom" )
 			{
 				// Add ourselves to the list, using our directory name  FIXME:  use the first emoticon of the theme.
 				QPixmap previewPixmap = QPixmap(locate("emoticons", themeQDir[y]+"/smile.png"));
 				d->mPrfsEmoticons->icon_theme_list->insertItem(previewPixmap,themeQDir[y]);
diff -U 4 -H -b -w -B -E -d -i -r -- kopete-0.12.0.orig/kopete/libkopete/private/kopeteemoticons.cpp kopete-0.12.0/kopete/libkopete/private/kopeteemoticons.cpp
--- kopete-0.12.0.orig/kopete/libkopete/private/kopeteemoticons.cpp	2006-05-31 02:24:05.000000000 +0200
+++ kopete-0.12.0/kopete/libkopete/private/kopeteemoticons.cpp	2006-06-02 12:36:00.624089750 +0200
@@ -344,10 +344,21 @@
 		}
 	}
 }
 
+void Emoticons::reload()
+{
+  initEmoticons( QString::null );
+}
+
 void Emoticons::initEmoticons( const QString &theme )
 {
+  if(theme.compare( QString::fromLatin1("~custom") ) )
+  {
+    d->emoticonAndPicList.clear();
+    d->emoticonMap.clear();
+    initEmoticons( QString::fromLatin1("~custom") );
+  }
 	if(theme.isNull())
 	{
 		if ( d->theme == KopetePrefs::prefs()->iconTheme() )
 			return;
@@ -359,10 +370,8 @@
 		d->theme = theme;
 	}
 
 //	kdDebug(14010) << k_funcinfo << "Called" << endl;
-	d->emoticonAndPicList.clear();
-	d->emoticonMap.clear();
 
 	QString filename= KGlobal::dirs()->findResource( "emoticons",  d->theme + QString::fromLatin1( "/emoticons.xml" ) );
 	if(!filename.isEmpty())
 		return initEmoticon_emoticonsxml( filename );
diff -U 4 -H -b -w -B -E -d -i -r -- kopete-0.12.0.orig/kopete/libkopete/private/kopeteemoticons.h kopete-0.12.0/kopete/libkopete/private/kopeteemoticons.h
--- kopete-0.12.0.orig/kopete/libkopete/private/kopeteemoticons.h	2006-05-31 02:24:05.000000000 +0200
+++ kopete-0.12.0/kopete/libkopete/private/kopeteemoticons.h	2006-06-02 12:34:05.480893750 +0200
@@ -161,8 +161,15 @@
 	struct Emoticon;
 	struct EmoticonNode;
 	class Private;
 	Private *d;
+public slots:
+    /**
+     * Reload emoticons
+     * Use this when changing current theme, for instance.
+     */
+    void reload();
+
 private slots:
 
 	/**
 	 * Fills the map with paths and emoticons
kopete.SlackBuild

Codice: Seleziona tutto

#!/bin/sh
# Heavily based on the Slackware 10.2 SlackBuild
# Requirements: ortp 0.7.1, meanwhile, speex, openslp, gsmlib
# http://kopete.kde.org/
# Packager Vincenzi Loris - slacky@slacky.it

CWD=`pwd`
TMP=${TMP:-/tmp/tgz}
PKG=$TMP/package
NAME=kopete
VERSION=0.12.2
CHOST=i486
ARCH=${ARCH:-i486}
BUILD=2sl

if [ "$ARCH" = "i486" ]; then
  SLKCFLAGS="-O2 -march=i486 -mcpu=i686"
elif [ "$ARCH" = "i686" ]; then
  SLKCFLAGS="-O2 -march=i686 -mcpu=i686"
elif [ "$ARCH" = "x86_64" ]; then
  SLKCFLAGS="-O2"
fi

if [ ! -d $TMP ]; then
 mkdir -p $TMP
fi
if [ ! -d $PKG ]; then
 mkdir -p $PKG
fi

cd $TMP
tar xjvf $CWD/$NAME-$VERSION.tar.bz2
cd $NAME-$VERSION
patch -p1 <$CWD/kopete-0.12_importemoticons.patch
patch -p1 <$CWD/kopete-0.12_bigemoticons.patch
find . -perm 777 -exec chmod 755 {} \;
chown -R root.root .
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure --prefix=/opt/kde \
--enable-jingle \
--program-prefix="" \
--program-suffix="" \
$CHOST-slackware-linux
make
make install DESTDIR=$PKG
mkdir -p $PKG/usr/doc/$NAME-$VERSION
cp -a AUTHORS COPYING INSTALL README $PKG/usr/doc/$NAME-$VERSION
cd $PKG
find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cat $CWD/slack-desc > $PKG/usr/doc/$NAME-$VERSION/slack-desc
cat $CWD/$NAME.SlackBuild > $PKG/usr/doc/$NAME-$VERSION/$NAME.SlackBuild
requiredbuilder -v -y -s $CWD $PKG
makepkg -l y -c n $CWD/$NAME-$VERSION-$ARCH-$BUILD.tgz

if [ "$1" = "--cleanup" ]; then
 rm -rf $TMP
fi

Inviato: sab 23 set 2006, 1:52
da submax82
ottima cosa :D

sarebbe però da mettere anche le patch su slacky...

Inviato: sab 23 set 2006, 7:24
da ZeD
feeko!

tra l'altro avevo aperto un bug proprio per la seconda cosa!

(ps: ho messo i link alle patch "originali" e a quelle vostre... ignorate gli errori di grammatica, pero' >_<)

Inviato: sab 23 set 2006, 8:35
da gohanz
Complimenti segnala le pach agli autori! :p

Inviato: sab 23 set 2006, 9:50
da borgo.ema
questo è open source 8) ;)

Re: [X Loris] Kopete: patch per importare emoticons e altro.

Inviato: sab 23 set 2006, 18:10
da giangy
gianogli ha scritto: C'e' un pero'... Le patch sono scritte per Kopete 0.12.0 e non funzionano (o meglio, solo la seconda non funziona!) su Kopete 0.12.2. Non sapendo programmare in C++ ma solo in C ho provato a dargli un'occhiata e credo di averle messe a posto. Ho compilato Kopete 0.12.2 con le 2 patch e sembra che funzioni tutto (ho testato solo il protocollo MSN). Se per caso vuoi patchare kopete con queste due (secondo me utilissime) patch te le spedisco come le ho usate io aggiungendo anche il tuo slackbuild modificato per usarle. Se vuoi creare il pacchetto patchato e metterlo nel repository... E ovviamente se qualche volenteroso ha voglia di testarle a fondo (e magari migliorarle...) per vedere se danno problemi...
Ciao gianogli 8). Conoscendo l'autore di KMobileTools (Marco Gulino - RockMan) mi sono permesso di segnalargli questo interessante thread e ti comunico che, avendo gia' da diverso tempo le patch aggiornate in locale, ha provveduto ad inserire le stesse all'interno della sezione patches del suo sito: http://rockman.altervista.org/?p=patches.php

Se vuoi dargli una occhiata :badgrin:

Ciao,

Gianluca Varisco

Inviato: sab 23 set 2006, 18:40
da dapuzz
Ma gli altri vedranno le emoticon importate? Cioè, è proprio come succede con msn?

Inviato: dom 24 set 2006, 1:34
da gianogli
gohanz ha scritto:Complimenti segnala le pach agli autori! :p
Complimenti a RockMan... Anche perche' le patch funzionano molto bene!!!

Qualcuno riesce a contattare gli autori di Kopete? Queste patch devono essere inserite stabilmente all'interno del programma!!! :D

Ciao ciao...

Re: [X Loris] Kopete: patch per importare emoticons e altro.

Inviato: dom 24 set 2006, 1:36
da gianogli
giangy ha scritto:
gianogli ha scritto: C'e' un pero'... Le patch sono scritte per Kopete 0.12.0 e non funzionano (o meglio, solo la seconda non funziona!) su Kopete 0.12.2. Non sapendo programmare in C++ ma solo in C ho provato a dargli un'occhiata e credo di averle messe a posto. Ho compilato Kopete 0.12.2 con le 2 patch e sembra che funzioni tutto (ho testato solo il protocollo MSN). Se per caso vuoi patchare kopete con queste due (secondo me utilissime) patch te le spedisco come le ho usate io aggiungendo anche il tuo slackbuild modificato per usarle. Se vuoi creare il pacchetto patchato e metterlo nel repository... E ovviamente se qualche volenteroso ha voglia di testarle a fondo (e magari migliorarle...) per vedere se danno problemi...
Ciao gianogli 8). Conoscendo l'autore di KMobileTools (Marco Gulino - RockMan) mi sono permesso di segnalargli questo interessante thread e ti comunico che, avendo gia' da diverso tempo le patch aggiornate in locale, ha provveduto ad inserire le stesse all'interno della sezione patches del suo sito: http://rockman.altervista.org/?p=patches.php

Se vuoi dargli una occhiata :badgrin:

Ciao,

Gianluca Varisco
Hai fatto benissimo! E... bravo RockMan per aver aggiornato la seconda patch!!!
Ciao ciao...
GiAn

Inviato: dom 24 set 2006, 1:37
da gianogli
dapuzz ha scritto:Ma gli altri vedranno le emoticon importate? Cioè, è proprio come succede con msn?
Si, esattamente come con MSN. Testato l'altro giorno con 2 contatti...
Ciao ciao...
GiAn

Inviato: dom 24 set 2006, 11:31
da dapuzz
Ma quali sorgenti bisogna scaricare? Sto provando con quelli ufficiali 0.12.2 e mi dice

Codice: Seleziona tutto

patching file kopete/kopete/chatwindow/chatmessagepart.cpp
Hunk #1 FAILED at 34.
Hunk #2 FAILED at 60.
Hunk #3 FAILED at 120.
Hunk #4 FAILED at 146.
patch: **** malformed patch at line 55: actionCollection() );
:s :roll:

Edit: Era la patch che non era giusta, l'ho presa dal sito citato. Che ne dite di modificare il post iniziale? Sarebbe un'idea ....

RiEdit: Fatto il pacchetto, installato e l'import delle emoticons funziona. Ma gli altri non le vedono (sia msn 8 live che 7 normale). Inoltre ancora devo riuscie a capire come poter eliminare delle emoticon che ho aggiunto che per provare se usciva la barra di scorrimento ne ho aggiunte troppe :D

Inviato: lun 25 set 2006, 11:59
da gianogli
dapuzz ha scritto:Ma quali sorgenti bisogna scaricare? Sto provando con quelli ufficiali 0.12.2 e mi dice

Codice: Seleziona tutto

patching file kopete/kopete/chatwindow/chatmessagepart.cpp
Hunk #1 FAILED at 34.
Hunk #2 FAILED at 60.
Hunk #3 FAILED at 120.
Hunk #4 FAILED at 146.
patch: **** malformed patch at line 55: actionCollection() );
:s :roll:

Edit: Era la patch che non era giusta, l'ho presa dal sito citato. Che ne dite di modificare il post iniziale? Sarebbe un'idea ....

RiEdit: Fatto il pacchetto, installato e l'import delle emoticons funziona. Ma gli altri non le vedono (sia msn 8 live che 7 normale). Inoltre ancora devo riuscie a capire come poter eliminare delle emoticon che ho aggiunto che per provare se usciva la barra di scorrimento ne ho aggiunte troppe :D
Strano... Io l'ho usato con due contatti e ha funzionato! L'unica cosa che mi puo' venire in mente e' che questi due contatti avessero gia' entrambi le emoticons che ho importato... pero' mi sembra strano! Se kopete funziona con le emoticons "normali" deve funzionare per forza anche con quelle importate....

Per quello che riguarda l'eliminazione delle emoticons importate... be', tale funzione purtroppo nn e' stata ancora implementata. L'unico modo, che io sappia, per eliminare alcune emoticons e' aprire un file xml che contiene tutte le informazioni relative alle emoticons in uso e modificarselo a mano...
Di piu' non so!
Ciao ciao...
GiAn

Inviato: lun 25 set 2006, 12:06
da dapuzz
gianogli ha scritto: Strano... Io l'ho usato con due contatti e ha funzionato! L'unica cosa che mi puo' venire in mente e' che questi due contatti avessero gia' entrambi le emoticons che ho importato... pero' mi sembra strano! Se kopete funziona con le emoticons "normali" deve funzionare per forza anche con quelle importate....
Neanche, ho provato anche a dare lo stesso nome che avevano impostato anche gli altri. Credo che le emoticon normali sono convertite lato client, cioè, mi arriva la stringa e la sostituisco, mentre per quelle personalizzate mi deve arrivare proprio l'immagine, e non la scritta! Funzionerà senz'altro tra due utenti di kopete, ma non tra kopete e msn!
gianogli ha scritto: Per quello che riguarda l'eliminazione delle emoticons importate... be', tale funzione purtroppo nn e' stata ancora implementata. L'unico modo, che io sappia, per eliminare alcune emoticons e' aprire un file xml che contiene tutte le informazioni relative alle emoticons in uso e modificarselo a mano...
GiAn
Il file in questione è /home/utente/.kde/share/emoticons/~custom/emoticons.xml e contiene solo quelle importate :)

Inviato: lun 25 set 2006, 20:28
da gianogli
dapuzz ha scritto:
gianogli ha scritto: Strano... Io l'ho usato con due contatti e ha funzionato! L'unica cosa che mi puo' venire in mente e' che questi due contatti avessero gia' entrambi le emoticons che ho importato... pero' mi sembra strano! Se kopete funziona con le emoticons "normali" deve funzionare per forza anche con quelle importate....
Neanche, ho provato anche a dare lo stesso nome che avevano impostato anche gli altri. Credo che le emoticon normali sono convertite lato client, cioè, mi arriva la stringa e la sostituisco, mentre per quelle personalizzate mi deve arrivare proprio l'immagine, e non la scritta! Funzionerà senz'altro tra due utenti di kopete, ma non tra kopete e msn!
gianogli ha scritto: Per quello che riguarda l'eliminazione delle emoticons importate... be', tale funzione purtroppo nn e' stata ancora implementata. L'unico modo, che io sappia, per eliminare alcune emoticons e' aprire un file xml che contiene tutte le informazioni relative alle emoticons in uso e modificarselo a mano...
GiAn
Il file in questione è /home/utente/.kde/share/emoticons/~custom/emoticons.xml e contiene solo quelle importate :)
A me funziona fra Kopete e MSN... Ho due amici che nn vogliono passare a Linux (ma li sto convincendo!!!) e usano Windows. Il loro MSN Messanger (o Live...) e' aggiornato all'ultima versione!
Se vuoi appena ho tempo faccio ancora delle prove con altri contatti...
Ciao ciao...
GiAn

Inviato: lun 25 set 2006, 20:35
da dapuzz
Beh, allora se puoi caricare il pacchetto da qualche parte te ne sarei grato :D