QQ Plugin for Kopete TEST2 发布
位置:http://www.magiclinux.org/people/cjacker/qq-test2.tgz
修改:
0,增加了一个qq smileys,注意,目前还不能使用,只是提供表情资源,用于显示
1,修改了收到的MSG的显示,使用qq smileys显示合适的表情。
2,参考了一下windows下的几个qq版本,发现并不是哪个版本都支持表情,所以,目前,表情发送,可以使用现有的kopete表情足够了。
3,修改了好友状态的改变实现,发现,有部分客户端改变状态时,是可以实时改变自己的好友列表状态的,有些客户端则不是,所以,又打开了一个Qtimer,定时取好友,Online, Leave的列表。这是没有办法的办法。
4,修改了Connecting动画发生的时机,不会在要求输入密码时就开始Connecting.
5,Some little bug fix. 解释一下为什么不作IP显示。
云帆给出了一个很好的基础,IP显示当然也不是问题,只要一个函数就OK了。
这里的问题是:
1,显示IP是否合适
2,QQWry.dat的license问题,以及时效性。
这个地址查询是不是还有效?
所以,有可能会出一个IP 显示和查询的补丁,但是不会作到source里。 合适阿,我身边的人都是用显ip的版本,没有人用原版QQ得,都是用什么QQ外挂的 要怎样使用?
我现在用的LumaQQ经常出现收不到别人发的信息,一直不知要怎样解决,不知这个会不会好一点。 纺绎出错了,我用的是kdenetwork3.3.2
then mv -f ".deps/qqinterface.Tpo" ".deps/qqinterface.Plo"; \
else rm -f ".deps/qqinterface.Tpo"; exit 1; \
fi
qqinterface.cpp: In member function `void QQ::eventHandler(Q_UINT16)':
qqinterface.cpp:167: error: missing terminating " character
qqinterface.cpp:168: error: `bytes' undeclared (first use this function)
qqinterface.cpp:168: error: (Each undeclared identifier is reported only once for each function it appears in.)
qqinterface.cpp:168: error: missing terminating " character
qqinterface.cpp:171: error: missing terminating " character
qqinterface.cpp:172: error: `with' undeclared (first use this function)
qqinterface.cpp:172: error: missing terminating " character
qqinterface.cpp:176: error: missing terminating " character
qqinterface.cpp:177: error: `iled' undeclared (first use this function)
qqinterface.cpp:177: error: missing terminating " character
qqinterface.cpp:180: error: missing terminating " character
qqinterface.cpp:181: error: `al' undeclared (first use this function)
qqinterface.cpp:181: error: missing terminating " character
qqinterface.cpp:182: error: missing terminating " character
qqinterface.cpp:183: error: missing terminating " character
qqinterface.cpp: In member function `void QQ::processReceiveIM(ReceiveIMPacket*)':
qqinterface.cpp:449: warning: unused variable 'codec'
make: *** 错误 1
make: Leaving directory `/home/huting/temp/kde/kdenetwork-3.3.2/kopete/protocols/qq'
make: *** 错误 1
$ 装是装上了,但是只要qq上线,就会出错退出
回溯追踪显示
Using host libthread_db library "//lib/tls/libthread_db.so.1".
#70xb7f103c7 in KopeteContact::onlineStatus () from //usr/lib/libkopete.so.1
#80xb4fc74cc in QQAccount::qt_invoke () from /usr/lib/kde3/kopete_qq.so
#90xb6aa6f44 in QObject::activate_signal ()
from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#10 0xb4fca948 in QQ::FriendStatusChange () from /usr/lib/kde3/kopete_qq.so
#11 0xb4fc9c96 in QQ::processGetFriendOnlineReply ()
from /usr/lib/kde3/kopete_qq.so
#12 0xb4fc9f28 in QQ::OnIncommingData () from /usr/lib/kde3/kopete_qq.so
#13 0xb4fcacb8 in QQ::qt_invoke () from /usr/lib/kde3/kopete_qq.so
#14 0xb6aa6f44 in QObject::activate_signal ()
from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#15 0xb4ff93c5 in PacketManager::PacketArrived ()
from /usr/lib/kde3/kopete_qq.so
#16 0xb4ff31e6 in PacketManager::OnIncommingData ()
from /usr/lib/kde3/kopete_qq.so
#17 0xb4ff959d in PacketManager::qt_invoke () from /usr/lib/kde3/kopete_qq.so
#18 0xb6aa6f44 in QObject::activate_signal ()
from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#19 0xb6aa756c in QObject::activate_signal ()
from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#20 0xb6e037d0 in QSocketNotifier::activated ()
from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#21 0xb6ac3ff0 in QSocketNotifier::event ()
from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#22 0xb6a4320f in QApplication::internalNotify ()
from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#23 0xb6a43412 in QApplication::notify ()
from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#24 0xb71476e5 in KApplication::notify () from //usr/lib/libkdecore.so.4
#25 0xb6a36933 in QEventLoop::activateSocketNotifiers ()
from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#26 0xb69ed6c8 in QEventLoop::processEvents ()
from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#27 0xb6a59961 in QEventLoop::enterLoop ()
from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#28 0xb6a598b6 in QEventLoop::exec () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#29 0xb6a4236f in QApplication::exec () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#30 0x08076390 in ?? ()
#31 0xbffff7d0 in ?? ()
#32 0xbffff7b0 in ?? ()
#33 0xbffff7b0 in ?? ()
#34 0x00000000 in ?? ()
#35 0x080ab633 in typeinfo name for QMemArray<char> ()
#36 0x00000001 in ?? ()
#37 0x080ac8c4 in typeinfo name for QMemArray<char> ()
#38 0x080ab252 in typeinfo name for QMemArray<char> ()
#39 0x080ab267 in typeinfo name for QMemArray<char> ()
#40 0x080ab238 in typeinfo name for QMemArray<char> ()
#41 0xb684ed9c in ?? () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#42 0x00017ef1 in ?? ()
#43 0x080e10f8 in ?? ()
#44 0x00000004 in ?? ()
#45 0x0000001d in ?? ()
#46 0xb632f780 in __after_morecore_hook () from //lib/tls/libc.so.6
#47 0xb6f21110 in vtable for QGArray () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#48 0x082c05a8 in ?? ()
#49 0xb62750f4 in mallopt () from //lib/tls/libc.so.6
#50 0xb6229ad3 in __libc_start_main () from //lib/tls/libc.so.6
#51 0x080688e1 in ?? ()
我用的是kdenetwork3.3.2里的kopete,而且是先装了kopete,然后再装qq插件的 我的kde版本为3.2.1,下载kdenetwork3.3.1后编译通不过。是否与我的kde版本有关? 换用kdenetwork3.3.1里的kpoete,可以运行 ,但是好友名单中中文全是????, cjacker,给的qq包有点问题,我是修改过才编绎成功的 乱码问题跟我用的补过的Qt有关系,我的Qt是可以自动纠正乱码问题的。
所以我这里看不到乱码,你必须告诉我哪里有问题:-D
至于crash的问题,我会看看。 qqinterface.cpp文件
164行
switch(eventCode)
{
case QQ_EXCEPTION_SEND_BYTES_WRONG:
KMessageBox::messageBox((QWidget *) 0,KMessageBox::WarningYesNo, i18n("Exceptioin for
bytes sent"), i18n("Send Exception"));
break;
case QQ_CMD_KEEP_ALIVE:
KMessageBox::messageBox((QWidget *) 0,KMessageBox::Information, i18n("lost connection
with server"), i18n("lost connection"));
emit offlineOK();
break;
case QQ_CMD_SEND_IM:
KMessageBox::messageBox((QWidget *) 0,KMessageBox::WarningYesNo, i18n("Send Message Fa
iled"), i18n("Send"));
break;
case QQ_CMD_GET_USER_INFO:
KMessageBox::messageBox((QWidget *) 0,KMessageBox::Information, i18n("Can't get person
al details from server"),
i18n(" getting pe
rsonal details"));
break;
case QQ_CMD_GET_FRIEND_LIST:
KMessageBox::messageBox((QWidget *) 0,KMessageBox::Information, i18n("Can't get friend list from server"),
i18n("getting friend list"));
emit offlineOK();
break;
case QQ_CMD_CHANGE_STATUS:
KMessageBox::messageBox((QWidget *) 0,KMessageBox::Information, i18n("Change status failed, no response from server"),
i18n(""));
break;
}
编绎 的时候出错如上
后来我把其中多余的分行除去就可以了
switch(eventCode)
{
case QQ_EXCEPTION_SEND_BYTES_WRONG:
KMessageBox::messageBox((QWidget *) 0,KMessageBox::WarningYesNo, i18n("Exceptioin for bytes sent"), i18n("Send Exception"));
break;
case QQ_CMD_KEEP_ALIVE:
KMessageBox::messageBox((QWidget *) 0,KMessageBox::Information, i18n("lost connection with server"), i18n("lost connection"));
emit offlineOK();
break;
case QQ_CMD_SEND_IM:
KMessageBox::messageBox((QWidget *) 0,KMessageBox::WarningYesNo,18n("Send Message Failed"), i18n("Send"));
break;
case QQ_CMD_GET_USER_INFO:
KMessageBox::messageBox((QWidget *) 0,KMessageBox::Information, i18n("Can'tget personal details from server"),i18n(" getting personal details"));
break;
case QQ_CMD_GET_FRIEND_LIST:
KMessageBox::messageBox((QWidget *) 0,KMessageBox::Information, i18n("Can'tget friend list from server"), i18n("getting friend list"));
emit offlineOK();
break;
case QQ_CMD_CHANGE_STATUS:
KMessageBox::messageBox((QWidget *) 0,KMessageBox::Information, i18n("Change status failed, no response from server"),i18n(""));
break;
}
就可以了,我想这也应该与你打的那个qt patch有关 我用了一个只有7个好友的qq号A, 登录,收消息都没有问题, 只是发送按钮是disable的,怎么输入都不便颜色,按什么键都无法发送,不知如何发送消息。
然后我做了如下操作, 都crash了
1。 我登录号A(隐身), 然后登录B(有64个好友), 让A 上线, 然后就crash。
2。 我登录号B(隐身), 然后crash
3。 我登录号A(上线), 然后登录B(隐身), 然后crash
下面是操作3时crash(基本每次都是相同的内容)的回溯报告:
(no debugging symbols found)...Using host libthread_db library "/lib/libthread_db.so.1".
(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...[Thread debugging using libthread_db enabled]
[New Thread 16384 (LWP 12155)]
0x41c55fe8 in waitpid () from /lib/i686/libpthread.so.0
#00x41c55fe8 in waitpid () from /lib/i686/libpthread.so.0
#10x411200c4 in __JCR_LIST__ () from /usr/lib/libkdecore.so.4
#20x40ffcddf in KCrash::defaultCrashHandler(int) ()
from /usr/lib/libkdecore.so.4
#30x41c54d66 in __pthread_sighandler () from /lib/i686/libpthread.so.0
#4<signal handler called>
#50x400bdd96 in KopeteContact::onlineStatus() const ()
from /usr/lib/libkopete.so.1
#60x438d8115 in QQAccount::ChangeFriendStatus(std::list<int, std::allocator<int> >, std::list<int, std::allocator<int> >, std::list<int, std::allocator<int> >, std::list<int, std::allocator<int> >) () from /usr/lib/kde3/kopete_qq.so
#70x438d913e in QQAccount::qt_invoke(int, QUObject*) ()
from /usr/lib/kde3/kopete_qq.so
#80x41427cb0 in QObject::activate_signal(QConnectionList*, QUObject*) (
this=0x82e01c8, clist=0xbfffee20, o=0xbfffee20) at qconnection.h:56
#90x438dc0d4 in QQ::FriendStatusChange(std::list<int, std::allocator<int> >, std::list<int, std::allocator<int> >, std::list<int, std::allocator<int> >, std::list<int, std::allocator<int> >) () from /usr/lib/kde3/kopete_qq.so
#10 0x438da9f4 in QQ::processGetFriendOnlineReply(GetFriendOnlineReplyPacket*)
() from /usr/lib/kde3/kopete_qq.so
#11 0x438da440 in QQ::OnIncommingData(unsigned short) ()
from /usr/lib/kde3/kopete_qq.so
#12 0x438dc188 in QQ::qt_invoke(int, QUObject*) ()
from /usr/lib/kde3/kopete_qq.so
#13 0x41427cb0 in QObject::activate_signal(QConnectionList*, QUObject*) (
this=0x82a0e40, clist=0xbffff090, o=0xbffff090) at qconnection.h:56
#14 0x43902fb7 in PacketManager::PacketArrived(unsigned short) ()
from /usr/lib/kde3/kopete_qq.so
#15 0x438fda65 in PacketManager::OnIncommingData() ()
from /usr/lib/kde3/kopete_qq.so
#16 0x439030f3 in PacketManager::qt_invoke(int, QUObject*) ()
from /usr/lib/kde3/kopete_qq.so
#17 0x41427cb0 in QObject::activate_signal(QConnectionList*, QUObject*) (
this=0x830dac0, clist=0xbffff1b0, o=0xbffff1b0) at qconnection.h:56
#18 0x41427e10 in QObject::activate_signal(int, int) (this=0x830dac0,
signal=2, param=0) at kernel/qobject.cpp:2449
#19 0x41754ef2 in QSocketNotifier::activated(int) (this=0x0, t0=0)
at qmetaobject.h:261
#20 0x41444180 in QSocketNotifier::event(QEvent*) (this=0x830dac0,
e=0xbffff460) at kernel/qsocketnotifier.cpp:280
#21 0x413ccd85 in QApplication::internalNotify(QObject*, QEvent*) (this=0x0,
receiver=0x830dac0, e=0xbffff460) at kernel/qapplication.cpp:2620
#22 0x413cc43b in QApplication::notify(QObject*, QEvent*) (this=0xbffff6e0,
receiver=0x830dac0, e=0xbffff460) at kernel/qapplication.cpp:2359
#23 0x40f74d9f in KApplication::notify(QObject*, QEvent*) ()
from /usr/lib/libkdecore.so.4
#24 0x413bc9ca in QEventLoop::activateSocketNotifiers() (this=0x8196ba0)
at kernel/qeventloop_unix.cpp:581
#25 0x41376ed2 in QEventLoop::processEvents(unsigned) (this=0x8196ba0, flags=4)
at kernel/qeventloop_x11.cpp:383
#26 0x413deb06 in QEventLoop::enterLoop() (this=0x8196ba0)
at kernel/qeventloop.cpp:198
#27 0x413de9a8 in QEventLoop::exec() (this=0x8196ba0)
at kernel/qeventloop.cpp:145
#28 0x413ccfd1 in QApplication::exec() (this=0xbffff6e0)
at kernel/qapplication.cpp:2743
#29 0x08068e59 in main ()
好像是得到好友列表时较容易崩溃
我的测试环境 红旗4.1, kopete 0.9.0源码 果然与红旗打的哪个qt patch有关呀 做个补丁吧。 红旗4.1下怎么编译?我已下载了kdenetworks3.3.1,可老是不成功。谢谢
页:
[1]
2