Giter Site home page Giter Site logo

gtkqq's Introduction

GtkQQ is a QQ client. It is written using gtk and based on the webqq protocol.

The webqq protocol is based on the HTTP. 
Visit http://web.qq.com to see it.

Maybe GtkQQ is a browser, whick can only visit http://web.qq.com.
I think there is no copyright problem, because I just write a highly custommed
broswer.

src-|
    |--comm     some common codes, such as log
    |--libqq    the core library
    |--gui      the gui version
    |--cli      the command line version
    |--misc     some resource files. such as pictures.
    |--tool     some tool used to develop
    |--test     the test codes.

gtkqq's People

Contributors

kernelhcy avatar mathslinux avatar shwangdev avatar skatiger avatar thynson avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gtkqq's Issues

建议把文字输入框调小一点

ubuntu下使用 --enable-unity 编译,输入框太大,导致信息显示框比较小。即使用户自行调整,效果仍然不明显。建议把 --enable-unity 编译时文字输入框的高度适当调低

Failed to Run

`$ gtkqq

** ERROR **: Create config dir /root/.gtkqq/ error!(gqqconfig.c, 246)
zsh: trace trap gtkqq
`

Why don't use g_get_home_dir()?

Syntax error @ src/gui/gqqconfig.c

gqqconfig.c: 在函数‘gqq_config_init’中:
gqqconfig.c:245:42: 错误:expected ‘)’ before ‘{’ token
gqqconfig.c:250:5: 错误:expected expression before ‘GString’
gqqconfig.c:253:22: 错误:‘facedir’未声明(在此函数内第一次使用)
gqqconfig.c:253:22: 附注:每个未声明的标识符在其出现的函数内只报告一次
make[4]: *** [gqqconfig.o] 错误 1
    if(!g_file_test(cfgdir->str, G_FILE_TEST_EXISTS
       && -1 == g_mkdir(cfgdir->str, 0777)){            // a ")" is left out
        g_error("Create config dir %s error!(%s, %d)"
                , cfgdir->str, __FILE__, __LINE__);
    }) 

debian下运行时段错误

RT,debian 是testing,桌面是xfce4。
[debian:gui]$./gtkqq
Last datebase version is 1002. (dao.c, 84)

(lt-gtkqq:30817): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed

(lt-gtkqq:30817): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed

(lt-gtkqq:30817): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed

(lt-gtkqq:30817): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed

(lt-gtkqq:30817): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed

(lt-gtkqq:30817): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed

(lt-gtkqq:30817): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed

(lt-gtkqq:30817): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_width: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(lt-gtkqq:30817): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_height: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(lt-gtkqq:30817): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_width: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(lt-gtkqq:30817): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_height: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(lt-gtkqq:30817): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_width: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(lt-gtkqq:30817): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_height: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(lt-gtkqq:30817): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_pixels: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(lt-gtkqq:30817): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_rowstride: assertion `GDK_IS_PIXBUF (pixbuf)' failed

(lt-gtkqq:30817): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_n_channels: assertion `GDK_IS_PIXBUF (pixbuf)' failed
段错误
[debian:gui]$

发现一个托盘的BUG

当鼠标悬停在托盘上,并出现tooltip时,终端会出现以下4个警告:

(gtkqq:11026): Gdk-CRITICAL **: IA__gdk_window_get_root_coords: assertion `GDK_IS_WINDOW (window)' failed

(gtkqq:11026): Gdk-CRITICAL **: IA__gdk_window_get_root_coords: assertion `GDK_IS_WINDOW (window)' failed

(gtkqq:11026): Gdk-CRITICAL **: IA__gdk_window_get_root_coords: assertion `GDK_IS_WINDOW (window)' failed

(gtkqq:11026): Gdk-CRITICAL **: IA__gdk_window_get_root_coords: assertion `GDK_IS_WINDOW (window)' failed

报告几个段错误 bug

DEBUG : Get face image of 3265364823!(qqimg.c, 45)
DEBUG : Content-Length: 4854.(url.c, 326)
DEBUG : Content-Length: 12053.(url.c, 326)
段错误

DEBUG : GQQConfig getter: mute (gqqconfig.c, 115)
DEBUG : poll.(qqpoll.c, 305)

(gtkqq:17971): GLib-GObject-WARNING **: instance of invalid non-instantiatable type `(null)'
段错误

来自部分网友测试的结果

无法和windows上的QQ用户聊天

可以和webqq用户互聊,也可以接受来自windows上的QQ用户的信息,但是向windows的qq发送信息时,对方收不到。

可以用 debug 调试吗?该看哪部分信息?

呼叫作者, 提问一个代码上的问题

@wxjeacen , facepopupwindow, 他的parent是GtkTextView, 这个widget的继承关系是 GtkWidget-》GtkContainer-》GtkTextView, 其中并没有GtkWindow, 但是init函数把它当GtkWindow操作, GTK2只给了一个warning, 但是gtk3 就直接crash了,请问这是为什么啊

program crash at qqlogin.c

The size of array params is too small and overwriting it may smash the stack of function get_ptcz_skey().
I modify 300 to 500 to sovle the problem.

*** stack smashing detected ***: gtkqq terminated

$ gtkqq
DEBUG : Open db connection to /home/guten/.gtkqq/gtkqq.db (dao.c, 81)
DEBUG : GQQConfig setter: info (gqqconfig.c, 146)
DEBUG : Start Send main loop...(msgloop.c, 36)
DEBUG : DEBUG : Start Get Number and face images main loop...(msgloop.c, 36)Start Get informain main loop...(msgloop.c, 36)
DEBUG : Start login... qqnum: [email protected], status: online (loginpanel.c, 314)
DEBUG : Run login state machine...(loginpanel.c, 317)
DEBUG : GQQConfig setter: qqnum (gqqconfig.c, 146)
DEBUG : GQQConfig setter: passwd (gqqconfig.c, 146)
DEBUG : GQQConfig setter: status (gqqconfig.c, 146)
DEBUG : Check veriry code...(qqlogin.c, 45)
DEBUG : check vc return: ptui_checkVC('0','!0GB');(qqlogin.c, 95)
DEBUG : Verify code : !0GB (qqlogin.c, 112)
DEBUG : Cookie ptvfsession=bfea698262ae42180d36810cbff2140a48146358080548f6e59301a94ca371c8007518a4e7122701abcb800a0b3e7eea (qqlogin.c, 32)
DEBUG : Get version...(qqlogin.c, 620)
DEBUG : Content-Length: 20.(url.c, 318)
DEBUG : Version: 1111141030(qqlogin.c, 264)
DEBUG : Login...(qqlogin.c, 634)
DEBUG : Get ptcz and skey...(qqlogin.c, 637)
DEBUG : Success.(qqlogin.c, 376)
DEBUG : Cookie ptcz=1d9b1e37157935df2681d141085f62988f5b6c3b7441111221d02ec22a1032b9 (qqlogin.c, 32)
DEBUG : Cookie skey=@FJrp2hy5m (qqlogin.c, 32)
DEBUG : Cookie ptwebqq=5e999da7c5ee9faab7d04b5f4bbe3d149e7b122a8b5c028c15543acd50bda7fb (qqlogin.c, 32)
DEBUG : Cookie ptuserinfo=477574656e205965 (qqlogin.c, 32)
DEBUG : Cookie uin=o0993829730 (qqlogin.c, 32)
DEBUG : Cookie ptisp=ctc (qqlogin.c, 32)
DEBUG : Cookie pt2gguin=o0993829730 (qqlogin.c, 32)
*** stack smashing detected ***: gtkqq terminated
======= Backtrace: =========
/lib/libc.so.6(__fortify_fail+0x37)[0x7f8939739cf7]
/lib/libc.so.6(__fortify_fail+0x0)[0x7f8939739cc0]
/usr/lib/libwebqq.so.0(+0xb751)[0x7f893a196751]
/usr/lib/libwebqq.so.0(qq_login+0x287)[0x7f893a196ef7]
gtkqq[0x413abf]
gtkqq[0x408a4e]
/usr/lib/libglib-2.0.so.0(g_main_context_dispatch+0x1dd)[0x7f8939eda84d]
/usr/lib/libglib-2.0.so.0(+0x45048)[0x7f8939edb048]
/usr/lib/libglib-2.0.so.0(g_main_loop_run+0x162)[0x7f8939edb582]
gtkqq[0x408acb]
/usr/lib/libglib-2.0.so.0(+0x6a076)[0x7f8939f00076]
/lib/libpthread.so.0(+0x7df0)[0x7f89399dedf0]
/lib/libc.so.6(clone+0x6d)[0x7f893972439d]
======= Memory map: ========
00400000-0041f000 r-xp 00000000 08:04 10786395                           /usr/bin/gtkqq
0061e000-0061f000 r--p 0001e000 08:04 10786395                           /usr/bin/gtkqq
0061f000-00620000 rw-p 0001f000 08:04 10786395                           /usr/bin/gtkqq
01589000-0178b000 rw-p 00000000 00:00 0                                  [heap]
7f892c000000-7f892c024000 rw-p 00000000 00:00 0 
7f892c024000-7f8930000000 ---p 00000000 00:00 0 
7f8931333000-7f8931348000 r-xp 00000000 08:04 10768539                   /usr/lib/libgcc_s.so.1
7f8931348000-7f8931548000 ---p 00015000 08:04 10768539                   /usr/lib/libgcc_s.so.1
7f8931548000-7f8931549000 rw-p 00015000 08:04 10768539                   /usr/lib/libgcc_s.so.1
7f8931549000-7f893154e000 r-xp 00000000 08:04 4587537                    /lib/libnss_dns-2.14.1.so
7f893154e000-7f893174d000 ---p 00005000 08:04 4587537                    /lib/libnss_dns-2.14.1.so
7f893174d000-7f893174e000 r--p 00004000 08:04 4587537                    /lib/libnss_dns-2.14.1.so
7f893174e000-7f893174f000 rw-p 00005000 08:04 4587537                    /lib/libnss_dns-2.14.1.so
7f893174f000-7f89317af000 rw-s 00000000 00:04 1638414                    /SYSV00000000 (deleted)
7f89317af000-7f89317b0000 ---p 00000000 00:00 0 
7f89317b0000-7f8931fb0000 rw-p 00000000 00:00 0 
7f8931fb0000-7f8931ff3000 r-xp 00000000 08:04 10783124                   /usr/lib/libibus-1.0.so.0.400.0
7f8931ff3000-7f89321f2000 ---p 00043000 08:04 10783124                   /usr/lib/libibus-1.0.so.0.400.0
7f89321f2000-7f89321f4000 r--p 00042000 08:04 10783124                   /usr/lib/libibus-1.0.so.0.400.0
7f89321f4000-7f89321f5000 rw-p 00044000 08:04 10783124                   /usr/lib/libibus-1.0.so.0.400.0
7f89321f5000-7f89321f6000 rw-p 00000000 00:00 0 
7f89321f6000-7f8932239000 r-xp 00000000 08:04 10753836                   /usr/lib/libdbus-1.so.3.5.8
7f8932239000-7f8932438000 ---p 00043000 08:04 10753836                   /usr/lib/libdbus-1.so.3.5.8
7f8932438000-7f8932439000 r--p 00042000 08:04 10753836                   /usr/lib/libdbus-1.so.3.5.8
7f8932439000-7f893243a000 rw-p 00043000 08:04 10753836                   /usr/lib/libdbus-1.so.3.5.8
7f893243a000-7f8932440000 r-xp 00000000 08:04 11670568                   /usr/lib/gtk-2.0/2.10.0/immodules/im-ibus.so
7f8932440000-7f893263f000 ---p 00006000 08:04 11670568                   /usr/lib/gtk-2.0/2.10.0/immodules/im-ibus.so
7f893263f000-7f8932640000 r--p 00005000 08:04 11670568                   /usr/lib/gtk-2.0/2.10.0/immodules/im-ibus.so
7f8932640000-7f8932641000 rw-p 00006000 08:04 11670568                   /usr/lib/gtk-2.0/2.10.0/immodules/im-ibus.so
7f8932641000-7f8933048000 r--p 00000000 08:04 4080845                    /home/guten/.fonts/simsun.ttc
7f8933048000-7f8933049000 ---p 00000000 00:00 0 
7f8933049000-7f8933849000 rw-p 00000000 00:00 0 
7f8933849000-7f893384a000 ---p 00000000 00:00 0 
7f893384a000-7f893404a000 rw-p 00000000 00:00 0 
7f893404a000-7f893404b000 ---p 00000000 00:00 0 
7f893404b000-7f893484b000 rw-p 00000000 00:00 0 
7f893484b000-7f8934856000 r-xp 00000000 08:04 4591704                    /lib/libnss_files-2.14.1.so
7f8934856000-7f8934a56000 ---p 0000b000 08:04 4591704                    /lib/libnss_files-2.14.1.so
7f8934a56000-7f8934a57000 r--p 0000b000 08:04 4591704                    /lib/libnss_files-2.14.1.so
7f8934a57000-7f8934a58000 rw-p 0000c000 08:04 4591704                    /lib/libnss_files-2.14.1.so
7f8934a58000-7f8934c1d000 r--p 00000000 08:04 10754518                   /usr/lib/locale/locale-archive
7f8934c1d000-7f8934c22000 r-xp 00000000 08:04 10761882                   /usr/lib/libXdmcp.so.6.0.0
7f8934c22000-7f8934e21000 ---p 00005000 08:04 10761882                   /usr/lib/libXdmcp.so.6.0.0
7f8934e21000-7f8934e22000 rw-p 00004000 08:04 10761882                   /usr/lib/libXdmcp.so.6.0.0
7f8934e22000-7f8934e24000 r-xp 00000000 08:04 10762043                   /usr/lib/libXau.so.6.0.0
7f8934e24000-7f8935023000 ---p 00002000 08:04 10762043                   /usr/lib/libXau.so.6.0.0
7f8935023000-7f8935024000 rw-p 00001000 08:04 10762043                   /usr/lib/libXau.so.6.0.0
7f8935024000-7f8935033000 r-xp 00000000 08:04 4591784                    /lib/libbz2.so.1.0.6
7f8935033000-7f8935232000 ---p 0000f000 08:04 4591784                    /lib/libbz2.so.1.0.6
7f8935232000-7f8935234000 rw-p 0000e000 08:04 4591784                    /lib/libbz2.so.1.0.6
7f8935234000-7f893525b000 r-xp 00000000 08:04 10753817                   /usr/lib/libexpat.so.1.5.2
7f893525b000-7f893545b000 ---p 00027000 08:04 10753817                   /usr/lib/libexpat.so.1.5.2
7f893545b000-7f893545d000 r--p 00027000 08:04 10753817                   /usr/lib/libexpat.so.1.5.2
7f893545d000-7f893545e000 rw-p 00029000 08:04 10753817                   /usr/lib/libexpat.so.1.5.2
7f893545e000-7f8935471000 r-xp 00000000 08:04 4587534                    /lib/libresolv-2.14.1.so
7f8935471000-7f8935671000 ---p 00013000 08:04 4587534                    /lib/libresolv-2.14.1.so
7f8935671000-7f8935672000 r--p 00013000 08:04 4587534                    /lib[1]    19186 abort      gtkqq

myplatform is Arch Linux.

登陆时退出

^[[34m^[[1mDEBUG : ^[[0mOpen db connection to /home/pcusername/.gtkqq/gtkqq.db (dao.c, 81)^[[0m
^[[0m^[[34m^[[1mDEBUG : ^[[0mGQQConfig setter: info (gqqconfig.c, 151)^[[0m
^[[0m^[[34m^[[1mDEBUG : ^[[0mStart Get informain main loop...(msgloop.c, 36)^[[0m
^[[0m^[[34m^[[1mDEBUG : ^[[0mStart Get Number and face images main loop...(msgloop.c, 36)^[[0m
^[[0m^[[34m^[[1mDEBUG : ^[[0mStart Send main loop...(msgloop.c, 36)^[[0m
^[[0m^[[34m^[[1mDEBUG : ^[[0mStart login... qqnum: qq数字账号, status: hidden (loginpanel.c, 319)^[[0m
^[[0m^[[34m^[[1mDEBUG : ^[[0mRun login state machine...(loginpanel.c, 322)^[[0m
^[[0m^[[34m^[[1mDEBUG : ^[[0mGQQConfig setter: qqnum (gqqconfig.c, 151)^[[0m
^[[0m^[[34m^[[1mDEBUG : ^[[0mGQQConfig setter: passwd (gqqconfig.c, 151)^[[0m
^[[0m^[[34m^[[1mDEBUG : ^[[0mGQQConfig setter: status (gqqconfig.c, 151)^[[0m
^[[0m^[[34m^[[1mDEBUG : ^[[0mGQQConfig setter: rempw (gqqconfig.c, 151)^[[0m
^[[0m^[[34m^[[1mDEBUG : ^[[0mCheck veriry code...(qqlogin.c, 45)^[[0m
^[[0m^[[34m^[[1mDEBUG : ^[[0mresolving host by name: ptlogin2.qq.com
^[[0m
^[[0m^[[34m^[[1mDEBUG : ^[[0mresolved: ptlogin2.qq.com (119.147.74.122)
^[[0m
^[[0m^[[34m^[[1mDEBUG : ^[[0mconnecting to 119.147.74.122:80
^[[0m
^[[0m^[[34m^[[1mDEBUG : ^[[0mDid not using proxy bypass ...(qqproxy.c,752)^[[0m
^[[0m^[[34m^[[1mDEBUG : ^[[0mcheck vc return: ptui_checkVC('0','!16J');(qqlogin.c, 101)^[[0m
^[[0m^[[34m^[[1mDEBUG : ^[[0mVerify code : !16J (qqlogin.c, 118)^[[0m
^[[0m^[[34m^[[1mDEBUG : ^[[0mCookie ptvfsession=00822f5a5ac9d1af4829e6b053ee6df9e72ef3ea9f8653081b9cc53aa3e0230c6fe617decb24dcd0b8e471d6c638f42e (qqlogin.c, 32)^[[0m
^[[0m^[[34m^[[1mDEBUG : ^[[0mGet version...(qqlogin.c, 643)^[[0m
^[[0m^[[34m^[[1mDEBUG : ^[[0mresolving host by name: ui.ptlogin2.qq.com
^[[0m
^[[0m^[[34m^[[1mDEBUG : ^[[0mresolved: ui.ptlogin2.qq.com (121.14.95.108)
^[[0m
^[[0m^[[34m^[[1mDEBUG : ^[[0mconnecting to 121.14.95.108:80
^[[0m
^[[0m^[[34m^[[1mDEBUG : ^[[0mDid not using proxy bypass ...(qqproxy.c,752)^[[0m
^[[0m^[[34m^[[1mDEBUG : ^[[0mContent-Length: 20.(url.c, 320)^[[0m
^[[0m^[[34m^[[1mDEBUG : ^[[0mVersion: 2011120110(qqlogin.c, 275)^[[0m
^[[0m^[[34m^[[1mDEBUG : ^[[0mLogin...(qqlogin.c, 657)^[[0m
^[[0m^[[34m^[[1mDEBUG : ^[[0mGet ptcz and skey...(qqlogin.c, 660)^[[0m
^[[0m^[[34m^[[1mDEBUG : ^[[0mresolving host by name: ptlogin2.qq.com
^[[0m
^[[0m^[[34m^[[1mDEBUG : ^[[0mresolved: ptlogin2.qq.com (183.60.3.162)
^[[0m
^[[0m^[[34m^[[1mDEBUG : ^[[0mconnecting to 183.60.3.162:80
^[[0m
^[[0m^[[34m^[[1mDEBUG : ^[[0mDid not using proxy bypass ...(qqproxy.c,752)^[[0m
^[[0m^[[34m^[[1mDEBUG : ^[[0mSuccess.(qqlogin.c, 393)^[[0m
^[[0m^[[34m^[[1mDEBUG : ^[[0mCookie ptcz=290be0e9d154bdd21165ab2320abe95df939288a9a46392ecbd357edc2340f01 (qqlogin.c, 32)^[[0m
^[[0m^[[34m^[[1mDEBUG : ^[[0mCookie skey=@ZSBtBW0tZ (qqlogin.c, 32)^[[0m
^[[0m^[[34m^[[1mDEBUG : ^[[0mCookie ptwebqq=dc6355fcdd5575cb63ef4989080071a7ac3ea64371af89a98be34ae28d8fe42f (qqlogin.c, 32)^[[0m
^[[0m^[[34m^[[1mDEBUG : ^[[0mCookie ptuserinfo=e59ab4e58189e88faf (qqlogin.c, 32)^[[0m
^[[0m^[[34m^[[1mDEBUG : ^[[0mCookie uin=o0qq数字账号 (qqlogin.c, 32)^[[0m
^[[0m^[[34m^[[1mDEBUG : ^[[0mCookie ptisp=ctc (qqlogin.c, 32)^[[0m
^[[0m^[[34m^[[1mDEBUG : ^[[0mCookie pt2gguin=o0qq数字账号 (qqlogin.c, 32)^[[0m
^[[0m

Syntax still error @gui/gqqconfig.c

Same with issue #20/21,#21 seems to fix the compile failure, but I think that ')' should be right after 'G_FILE_TEST_EXISTS' to close the 'g_file_test' function.

diff --git a/src/gui/gqqconfig.c b/src/gui/gqqconfig.c
index 7796514..ea56614 100644
--- a/src/gui/gqqconfig.c
+++ b/src/gui/gqqconfig.c
@@ -241,8 +241,8 @@ static void gqq_config_init(GQQConfig *self)
{
GString *cfgdir = g_string_new (g_get_home_dir ());
g_string_append (cfgdir, "/.gtkqq");

  • if(!g_file_test(cfgdir->str, G_FILE_TEST_EXISTS
  •   && -1 == g_mkdir(cfgdir->str, 0777))){
    
  • if(!g_file_test(cfgdir->str, G_FILE_TEST_EXISTS)
  •   && -1 == g_mkdir(cfgdir->str, 0777)){
     g_error("Create config dir %s error!(%s, %d)"
             , cfgdir->str, **FILE**, **LINE**);
    
    }

bug:dao.c 80~82行有点问题

我在自己电脑上编译了deb包,没有问题。然后使用 launchpad 上的ppa编译了deb包,运行出问题了:

DEBUG : Open db connection to /home/buildd/.gtkqq/gtkqq.db (dao.c, 81)

** ERROR **: Open database error. unable to open database file (dao.c, 89)
跟踪/断点陷阱

额,我的电脑上并没有 /home/buildd 这种目录啊!看了下 dao.c 80~82 行:

g_debug("Open db connection to "CONFIGDIR"gtkqq.db (%s, %d)"
                                    , __FILE__, __LINE__);
gint retcode = sqlite3_open(CONFIGDIR"gtkqq.db", &db);

这个 CONFIGDIR 变量是否有点问题?我觉得应该取用户的家目录,而不能取编译目录。事实上,/home/buildd 这个目录是我在launchpad虚拟平台上编译时的目录,编译完了是要给其它人使用的

bug:聊天时,在中文输入法状态下无法输入英文

bug 重现方法:打开聊天窗口,开启中文输入法,随便输入几个英文,比如 GTKQQ,再按下回车键,按道理 GTKQQ 这几个字符就应该进入文本框(这应该是99%的中文输入法都能提供的功能)。但是怎么按回车键都没反应。

在其他地方输入没问题,在 openfetion、网页版qq都没问题。

我使用的是 fcitx 输入法,请使用其他输入法的人帮忙测试

有意思的是,pywebqq下按一次回车键会相当于两次,现在 gtkqq 这儿按回车键却没反应了

好友信息变化不及时

与好友聊天之后,好友离线,但是状态列表里却一直显示是在线的。这样子就容易误导了。有没有办法对方下线之后我这里就立即显示离线?

bug:没有勾选记住密码,下次打开后,密码还在

具体重现方法是这样:

先用帐号 A 登陆,不保存密码。然后退出

再用帐号B登陆,也不保存密码。然后退出

第三次,可以从下拉列表里面选择帐号A或B了,但这时密码会自动填充进去(太智能了)。这样,“不保存密码”那个选项就形同虚设了。

刚尝试了一下,ubuntu12.04 还是无法编译

qqtypes.c: In function 'qq_info_new':
qqtypes.c:26:5: error: 'g_mutex_new' is deprecated (declared at /usr/include/glib-2.0/glib/deprecated/gthread.h:271) [-Werror=deprecated-declarations]
qqtypes.c: In function 'qq_info_free':
qqtypes.c:95:5: error: 'g_mutex_free' is deprecated (declared at /usr/include/glib-2.0/glib/deprecated/gthread.h:273) [-Werror=deprecated-declarations]
cc1: all warnings being treated as errors

#39 是一个情况

不能通过编译!

UBUNTU 11.10环境下编译不能通过,提示错误如下:

testhttp.c
testhttp.c: 在函数‘main’中:
testhttp.c:44:2: 错误: 格式字符串不是一个字面字符串而且没有待格式化的实参 [-Werror=format-security]
cc1:所有的警告都被当作是错误

make[3]: *** [testhttp.o] 错误 1
make[3]:正在离开目录 /home/chenyj/Downloads/gtkqq/src/test' make[2]: *** [all-recursive] 错误 1 make[2]:正在离开目录/home/chenyj/Downloads/gtkqq/src'
make[1]: *** [all-recursive] 错误 1
make[1]:正在离开目录 `/home/chenyj/Downloads/gtkqq'
make: *** [all] 错误 2

关于ubuntu11.10上使用gtkqq的问题

我在ubuntu11.10和11.04上都编译成功了,但是在ubuntu11.10发现有一下问题,单人聊天没有问题,但是在群里面,群友无法显示,总是在刷(在ubuntu11.04上很正常显示),还有一个让我无语的问题就是,在ubuntu11.10上使用gtkqq两次ip都被学校拉入黑名单无法上网了,不知道怎么搞的,弄得我现在ubuntu11.10上都不敢用gtkqq了,请高手们帮忙看看怎么回事儿,我很有压力啊

强制类型安全检查时编译失败

Index: gtkqq-0+gitf39d6202/src/libqq/url.c

--- gtkqq-0+gitf39d6202.orig/src/libqq/url.c 2011-11-25 18:17:35.537317364 +0800
+++ gtkqq-0+gitf39d6202/src/libqq/url.c 2011-11-25 18:19:26.869320170 +0800
@@ -387,7 +387,7 @@
}
}else{
g_debug("More chunks... Begin %d len %d %s(%s, %d)"

  •                                    , chunkbegin, data -> len
    
  •                                    , chunkbegin, (int)data -> len
                                     , data -> str + chunkbegin
                                     , **FILE**, **LINE**);
                 break;
    

消息机制

作者们好,今天试用了gtkqq,还可以,就一点建议,状态栏的效果不是太好,而且在Unity里已经禁用托盘图标,而是把通讯工具全都放在“消息”那个图标下,用的indicator机制,作者可以考虑下这种方案,并不是很复杂。

各种使用问题

第一个:
编译出来两个可执行文件,一个gtkqq,一个qq,那个qq不知道是干啥的,用不了。

信息好像发送不出去。有WARNING:
** WARNING ** : Unknown message type: 0 (qqsendmsg.c, 211)
** WARNING ** : Send message error!! (groupchatwindow.c, 314)

有时候会崩溃:
** WARNING ** : Read data ERROR!! code:8 msg:Connection reset by peer(url.c, 292)
[1] 3293 segmentation fault gtkqq

我没编译test部分的代码,没啥影响吧?

紧急bug:请修改qqtypes.c的qq_info_new函数!

在 Ubuntu 12.04 上编译时发生错误:

qqtypes.c: In function 'qq_info_new':
qqtypes.c:26:5: error: 'g_mutex_new' is deprecated (declared at /usr/include/glib-2.0/glib/deprecated/gthread.h:271) [-Werror=deprecated-declarations]
qqtypes.c: In function 'qq_info_free':
qqtypes.c:94:5: error: 'g_mutex_free' is deprecated (declared at /usr/include/glib-2.0/glib/deprecated/gthread.h:273) [-Werror=deprecated-declarations]
cc1: all warnings being treated as errors

大概原因:g_mutex_new()函数在新版系统中已被废弃
http://developer.gnome.org/glib/2.31/glib-Deprecated-Thread-APIs.html
请换成别的吧,离Ubuntu12.04发布也不到五个月时间了~

ubuntu 10.04 编译不成功

鉴于把 gtkqq port 到老版本的呼声极高,我自己在 ubuntu 10.04 上试了一下,首先把 configure.ac 里面的 PKG_CHECK_MODULES(GTK, [gtk+-2.0 >= 2.24] 改成 PKG_CHECK_MODULES(GTK, [gtk+-2.0 >= 2.20], 然后在 configure 时出错了,(已经安装 zlib1g-dev,版本是1.2.3.3)

checking zlib.h usability... yes
checking zlib.h presence... yes
checking for zlib.h... yes
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for ZLIB... configure: error: Package requirements (zlib >= 1.2) were not met:

No package 'zlib' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables ZLIB_CFLAGS
and ZLIB_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.

看了一下,Ubuntu 10.04 的安装位置是:
/.
/usr
/usr/include
/usr/include/zconf.h
/usr/include/zlib.h
/usr/include/zlibdefs.h
/usr/lib
/usr/lib/libz.a
/usr/lib/libz.so

而 Ubuntu 11.10 的安装位置却是:
/.
/usr
/usr/include
/usr/include/zconf.h
/usr/include/zlib.h
/usr/include/zlibdefs.h
/usr/lib
/usr/lib/i386-linux-gnu
/usr/lib/i386-linux-gnu/libz.a
/usr/lib/i386-linux-gnu/libz.so
/usr/lib/i386-linux-gnu/pkgconfig
/usr/lib/i386-linux-gnu/pkgconfig/zlib.pc

后者能编译,前者就不行

Many Problems.

Why don't remove -Werror flag?
PS: too many warnings! please fix them!

Then,
$ gtkqq

** ERROR **: Open database error. unable to open database file (dao.c, 89)
zsh: trace trap gtkqq

It's so short that I can't understand what happened.

PS: GTK3 is more beatiful than GTK2.

建议加入消息通知功能

其实我并没有运行成功(已通过编译,但无法运行),所以尚且不知道是否有消息通知功能。但看到 todo 文件里面 done 和 todo 列表里都没有列出来。这个功能应该也不难实现,随便参考某个IM的代码,把系统内置的消息通知功能带出来就OK了。基本上,todo里面的功能再加上该功能,这个QQ就很完美了。

autogen.sh时出错。。。

./autogen.sh

  • aclocal
  • autoconf
    configure.ac:37: error: possibly undefined macro: AC_CHECK_LIB
    If this token and others are legitimate, please use m4_pattern_allow.
    See the Autoconf documentation.
    configure.ac:71: error: possibly undefined macro: AC_DEFINE
    configure.ac:72: error: possibly undefined macro: AC_SUBST
    configure.ac:199: error: possibly undefined macro: AC_MSG_RESULT
    configure.ac:202: error: possibly undefined macro: AC_MSG_ERROR
  • mkdir usr
    ++ pwd
  • ./configure --enable-debug --prefix=/home/shiding/Downloads/kernelhcy-gtkqq-6a29155/usr
    checking for a BSD-compatible install... /usr/bin/install -c
    checking whether build environment is sane... yes
    checking for a thread-safe mkdir -p... /bin/mkdir -p
    checking for gawk... no
    checking for mawk... mawk
    checking whether make sets $(MAKE)... yes
    checking for gcc... gcc
    checking whether the C compiler works... yes
    checking for C compiler default output file name... a.out
    checking for suffix of executables...
    checking whether we are cross compiling... no
    checking for suffix of object files... o
    checking whether we are using the GNU C compiler... yes
    checking whether gcc accepts -g... yes
    checking for gcc option to accept ISO C89... none needed
    checking for style of include used by make... GNU
    checking dependency style of gcc... gcc3
    checking dependency style of gcc... (cached) gcc3
    checking whether gcc and cc understand -c and -o together... yes
    checking build system type... i686-pc-linux-gnu
    checking host system type... i686-pc-linux-gnu
    checking for a sed that does not truncate output... /bin/sed
    checking for grep that handles long lines and -e... /bin/grep
    checking for egrep... /bin/grep -E
    checking for fgrep... /bin/grep -F
    checking for ld used by gcc... /usr/bin/ld
    checking if the linker (/usr/bin/ld) is GNU ld... yes
    checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
    checking the name lister (/usr/bin/nm -B) interface... BSD nm
    checking whether ln -s works... yes
    checking the maximum length of command line arguments... 1572864
    checking whether the shell understands some XSI constructs... yes
    checking whether the shell understands "+="... yes
    checking for /usr/bin/ld option to reload object files... -r
    checking for objdump... objdump
    checking how to recognize dependent libraries... pass_all
    checking for ar... ar
    checking for strip... strip
    checking for ranlib... ranlib
    checking command to parse /usr/bin/nm -B output from gcc object... ok
    checking how to run the C preprocessor... gcc -E
    checking for ANSI C header files... yes
    checking for sys/types.h... yes
    checking for sys/stat.h... yes
    checking for stdlib.h... yes
    checking for string.h... yes
    checking for memory.h... yes
    checking for strings.h... yes
    checking for inttypes.h... yes
    checking for stdint.h... yes
    checking for unistd.h... yes
    checking for dlfcn.h... yes
    checking for objdir... .libs
    checking if gcc supports -fno-rtti -fno-exceptions... no
    checking for gcc option to produce PIC... -fPIC -DPIC
    checking if gcc PIC flag -fPIC -DPIC works... yes
    checking if gcc static flag -static works... yes
    checking if gcc supports -c -o file.o... yes
    checking if gcc supports -c -o file.o... (cached) yes
    checking whether the gcc linker (/usr/bin/ld) supports shared libraries... yes
    checking whether -lc should be explicitly linked in... no
    checking dynamic linker characteristics... GNU/Linux ld.so
    checking how to hardcode library paths into programs... immediate
    checking whether stripping libraries is possible... yes
    checking if libtool supports shared libraries... yes
    checking whether to build shared libraries... yes
    checking whether to build static libraries... yes
    checking for pthread_create in -lpthread... yes
    checking for compress in -lzlib... no
    checking arpa/inet.h usability... yes
    checking arpa/inet.h presence... yes
    checking for arpa/inet.h... yes
    checking fcntl.h usability... yes
    checking fcntl.h presence... yes
    checking for fcntl.h... yes
    checking netdb.h usability... yes
    checking netdb.h presence... yes
    checking for netdb.h... yes
    checking netinet/in.h usability... yes
    checking netinet/in.h presence... yes
    checking for netinet/in.h... yes
    checking for stdint.h... (cached) yes
    checking for stdlib.h... (cached) yes
    checking for string.h... (cached) yes
    checking sys/ioctl.h usability... yes
    checking sys/ioctl.h presence... yes
    checking for sys/ioctl.h... yes
    checking sys/socket.h usability... yes
    checking sys/socket.h presence... yes
    checking for sys/socket.h... yes
    checking for unistd.h... (cached) yes
    checking zlib.h usability... no
    checking zlib.h presence... no
    checking for zlib.h... no
    ./configure: line 10956: syntax error near unexpected token ZLIB,' ./configure: line 10956:PKG_CHECK_MODULES(ZLIB, zlib >= 1.2,'
    系统是debian 6.0

bad support with GNOME3

can't use input method.

GTK2 app is ugly in GNOME3. Please use GTK3 instead.

Platform: Arch Linux x86_64
DE: GNOME 3.2

请添加m4目录

编译时提示无m4目录,需要手动创建m4目录来进行编译

无法通过VPN登录

如题,我使用的是https://www.runoz.us VPN,每次登录的时候都会要求输入验证码,但还是不能登录

wind@wind-netbook:~/workspace/gtkqq$ /usr/bin/gtkqq
DEBUG : Open db connection to /home/wind/.gtkqq/gtkqq.db (dao.c, 168)
DEBUG : Create all tables (dao.c, 147)
Last datebase version is -1. (dao.c, 84)
Update datebase from version 1001 to version 1002 (dao.c, 39)
DEBUG : GQQConfig setter: info (gqqconfig.c, 156)
DEBUG : Start Send main loop...(msgloop.c, 36)
DEBUG : Start Get informain main loop...(msgloop.c, 36)
DEBUG : Start Get Number and face images main loop...(msgloop.c, 36)
DEBUG : Start login... qqnum: 331843672, status: online (loginpanel.c, 344)
DEBUG : Run login state machine...(loginpanel.c, 347)
DEBUG : Check veriry code...(qqlogin.c, 45)
DEBUG : GQQConfig setter: qqnum (gqqconfig.c, 156)
DEBUG : GQQConfig setter: passwd (gqqconfig.c, 156)
DEBUG : GQQConfig setter: status (gqqconfig.c, 156)
DEBUG : GQQConfig setter: rempw (gqqconfig.c, 156)
DEBUG : The message body is chunked.(url.c, 337)
DEBUG : check vc return: ptui_checkVC('1','434c340aa13a36fd843ab9cf2f5fb967699de5178fa0a2c3');(qqlogin.c, 109)
DEBUG : We need verify code image! vc_type: 434c340aa13a36fd843ab9cf2f5fb967699de5178fa0a2c3 (qqlogin.c, 145)
DEBUG : Get verify code image...(qqlogin.c, 876)
DEBUG : Content-Length: 2803.(url.c, 326)
DEBUG : vc content type: image/jpeg(qqlogin.c, 218)
DEBUG : Verify code image file type: jpeg len 2803 (qqlogin.c, 230)
DEBUG : Create image file : /home/wind/.gtkqq/verifycode.jpeg (qqutils.c, 33)
DEBUG : Get version...(qqlogin.c, 671)
DEBUG : Content-Length: 22.(url.c, 326)
DEBUG : Version: 201112282038(qqlogin.c, 293)
DEBUG : Login...(qqlogin.c, 685)
DEBUG : Get ptcz and skey...(qqlogin.c, 688)
DEBUG : The message body is chunked.(url.c, 337)
** WARNING ** : Wrong input!(qqlogin.c, 450)
** WARNING ** : Login error! Error occured! Please try again. (loginpanel.c, 122)
DEBUG : Login error... (loginpanel.c, 236)
DEBUG : Show login panel.(loginpanel.c, 239)

编译出错

运行 ./autogen.sh,前面基本正常,最后报错信息:

configure: creating ./config.status
config.status: error: cannot find input file: `Makefile.in'

怎么解决?

登陆失败

编译成功,运行 gtkqq,出现登陆界面,输入用户名、密码,保存,登陆,崩溃退出

$ gtkqq
*** stack smashing detected ***: gtkqq terminated
======= Backtrace: =========
/lib/i386-linux-gnu/libc.so.6(__fortify_fail+0x45)[0xb6ec58d5]
/lib/i386-linux-gnu/libc.so.6(+0xe7887)[0xb6ec5887]
/usr/lib/libwebqq.so.0(+0x17491)[0xb702e491]
/usr/lib/libwebqq.so.0(+0xad65)[0xb7021d65]
/usr/lib/libwebqq.so.0(qq_login+0x338)[0xb7022658]
gtkqq[0x805b27a]
gtkqq[0x804e697]
/lib/i386-linux-gnu/libglib-2.0.so.0(+0x3f110)[0xb7077110]
/lib/i386-linux-gnu/libglib-2.0.so.0(g_main_context_dispatch+0x1df)[0xb707b25f]
/lib/i386-linux-gnu/libglib-2.0.so.0(+0x43990)[0xb707b990]
/lib/i386-linux-gnu/libglib-2.0.so.0(g_main_loop_run+0x14b)[0xb707bf9b]
gtkqq[0x804e72d]
/lib/i386-linux-gnu/libglib-2.0.so.0(+0x6a5f4)[0xb70a25f4]
/lib/i386-linux-gnu/libpthread.so.0(+0x6d31)[0xb6f60d31]
/lib/i386-linux-gnu/libc.so.6(clone+0x5e)[0xb6eb00ce]
======= Memory map: ========
08048000-08067000 r-xp 00000000 08:05 526765 /usr/local/bin/gtkqq
08067000-08068000 r--p 0001e000 08:05 526765 /usr/local/bin/gtkqq
08068000-08069000 rw-p 0001f000 08:05 526765 /usr/local/bin/gtkqq
0987b000-09a3e000 rw-p 00000000 00:00 0 [heap]
b31e3000-b31ff000 r-xp 00000000 08:05 916667 /lib/i386-linux-gnu/libgcc_s.so.1
b31ff000-b3200000 r--p 0001b000 08:05 916667 /lib/i386-linux-gnu/libgcc_s.so.1
b3200000-b3201000 rw-p 0001c000 08:05 916667 /lib/i386-linux-gnu/libgcc_s.so.1
b3201000-b3206000 r-xp 00000000 08:05 916685 /lib/i386-linux-gnu/libnss_dns-2.13.so
b3206000-b3207000 r--p 00004000 08:05 916685 /lib/i386-linux-gnu/libnss_dns-2.13.so
b3207000-b3208000 rw-p 00005000 08:05 916685 /lib/i386-linux-gnu/libnss_dns-2.13.so
b3208000-b320a000 r-xp 00000000 08:05 915779 /lib/libnss_mdns4_minimal.so.2
b320a000-b320b000 r--p 00001000 08:05 915779 /lib/libnss_mdns4_minimal.so.2
b320b000-b320c000 rw-p 00002000 08:05 915779 /lib/libnss_mdns4_minimal.so.2
b320c000-b326c000 rw-s 00000000 00:04 7864333 /SYSV00000000 (deleted)
b326c000-b32b3000 r-xp 00000000 08:05 916656 /lib/i386-linux-gnu/libdbus-1.so.3.5.7
b32b3000-b32b4000 r--p 00046000 08:05 916656 /lib/i386-linux-gnu/libdbus-1.so.3.5.7
b32b4000-b32b5000 rw-p 00047000 08:05 916656 /lib/i386-linux-gnu/libdbus-1.so.3.5.7
b32b5000-b32b8000 r-xp 00000000 08:05 402663 /usr/lib/libfcitx-utils.so.0.1.0
b32b8000-b32b9000 r--p 00002000 08:05 402663 /usr/lib/libfcitx-utils.so.0.1.0
b32b9000-b32ba000 rw-p 00003000 08:05 402663 /usr/lib/libfcitx-utils.so.0.1.0
b32ba000-b32dd000 r-xp 00000000 08:05 397778 /usr/lib/i386-linux-gnu/libdbus-glib-1.so.2.2.0
b32dd000-b32de000 r--p 00022000 08:05 397778 /usr/lib/i386-linux-gnu/libdbus-glib-1.so.2.2.0
b32de000-b32df000 rw-p 00023000 08:05 397778 /usr/lib/i386-linux-gnu/libdbus-glib-1.so.2.2.0
b32f7000-b32fd000 r-xp 00000000 08:05 402726 /usr/lib/i386-linux-gnu/gtk-2.0/2.10.0/immodules/im-fcitx.so
b32fd000-b32fe000 r--p 00005000 08:05 402726 /usr/lib/i386-linux-gnu/gtk-2.0/2.10.0/immodules/im-fcitx.so
b32fe000-b32ff000 rw-p 00006000 08:05 402726 /usr/lib/i386-linux-gnu/gtk-2.0/2.10.0/immodules/im-fcitx.so
b32ff000-b335f000 rw-s 00000000 00:04 7831562 /SYSV00000000 (deleted)
b335f000-b3364000 r--p 00000000 08:05 801897 /usr/share/locale-langpack/zh_CN/LC_MESSAGES/gdk-pixbuf.mo
b3364000-b3368000 r-xp 00000000 08:05 398302 /usr/lib/i386-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-png.so
b3368000-b3369000 r--p 00003000 08:05 398302 /usr/lib/i386-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-png.so
b3369000-b336a000 rw-p 00004000 08:05 398302 /usr/lib/i386-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-png.so
b336a000-b3387000 r--s 00000000 08:05 661345 /usr/share/mime/mime.cache
b3387000-b3389000 r--s 00000000 08:08 2490442 /home/bill/.local/share/mime/mime.cache
b3389000-b33b9000 rw-p 00000000 00:00 0
b33b9000-b38aa000 r--p 00000000 08:05 1178854 /usr/share/fonts/truetype/wqy/wqy-microhei.ttc
b38aa000-b395a000 r--p 00000000 08:05 1178795 /usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf
b395a000-b395c000 r-xp 00000000 08:05 398401 /usr/lib/i386-linux-gnu/pango/1.6.0/modules/pango-basic-fc.so
b395c000-b395d000 r--p 00001000 08:05 398401 /usr/lib/i386-linux-gnu/pango/1.6.0/modules/pango-basic-fc.so
b395d000-b395e000 rw-p 00002000 08:05 398401 /usr/lib/i386-linux-gnu/pango/1.6.0/modules/pango-basic-fc.so
b395e000-b395f000 r--s 00000000 08:05 666820 /var/cache/fontconfig/c05880de57d1f5e948fdfacc138775d9-le32d4.cache-3
b395f000-b3965000 r--s 00000000 08:05 666817 /var/cache/fontconfig/945677eb7aeaf62f1d50efc3fb3ec7d8-le32d4.cache-3
b3965000-b3967000 r--s 00000000 08:05 666818 /var/cache/fontconfig/99e8ed0e538f840c565b6ed5dad60d56-le32d4.cache-3
b3967000-b396a000 r--s 00000000 08:05 666828 /var/cache/fontconfig/e383d7ea5fbe662a33d9b44caf393297-le32d4.cache-3
b396a000-b396e000 r--s 00000000 08:05 666819 /var/cache/fontconfig/a755afe4a08bf5b97852ceb7400b47bc-le32d4.cache-3
b396e000-b3972000 r--s 00000000 08:05 674693 /var/cache/fontconfig/515ca1ebc4b18308bea979be5704f9db-le32d4.cache-3
b3972000-b3979000 r--s 00000000 08:05 673763 /var/cache/fontconfig/6d41288fd70b0be22e8c3a91e032eec0-le32d4.cache-3
b3979000-b3984000 r--s 00000000 08:05 666803 /var/cache/fontconfig/0f34bcd4b6ee430af32735b75db7f02b-le32d4.cache-3
b3984000-b39a6000 r--s 00000000 08:05 674696 /var/cache/fontconfig/365b55f210c0a22e9a19e35191240f32-le32d4.cache-3
b39a6000-b39b3000 r--s 00000000 08:05 666824 /var/cache/fontconfig/d52a8644073d54c13679302ca1180695-le32d4.cache-3
b39b3000-b39b9000 r--s 00000000 08:05 674692 /var/cache/fontconfig/153bb866d4d26e7cd19eee2129f8d8d2-le32d4.cache-3
b39b9000-b39ba000 ---p 00000000 00:00 0
b39ba000-b41ba000 rw-p 00000000 00:00 0
b41ba000-b41bb000 ---p 00000000 00:00 0
b41bb000-b49bb000 rw-p 00000000 00:00 0
b49bb000-b49d3000 r-xp 00000000 08:05 395340 /usr/lib/libdbusmenu-glib.so.4.0.5
b49d3000-b49d4000 r--p 00017000 08:05 395340 /usr/lib/libdbusmenu-glib.so.4.0.5
b49d4000-b49d5000 rw-p 00018000 08:05 395340 /usr/lib/libdbusmenu-glib.so.4.0.5
b49d5000-b49e5000 r-xp 00000000 08:05 395342 /usr/lib/libdbusmenu-gtk.so.4.0.5
b49e5000-b49e6000 ---p 00010000 08:05 395342 /usr/lib/libdbusmenu-gtk.so.4.0.5
b49e6000-b49e7000 r--p 00010000 08:05 395342 /usr/lib/libdbusmenu-gtk.so.4.0.5
b49e7000-b49e8000 rw-p 00011000 08:05 395342 /usr/lib/libdbusmenu-gtk.so.4.0.5
b49e9000-b49ec000 r--s 00000000 08:05 666805 /var/cache/fontconfig/2cd17615ca594fa2959ae173292e504c-le32d4.cache-3
b49ec000-b49ed000 r--s 00000000 08:05 666829 /var/cache/fontconfig/e7071f4a29fa870f4323321c154eba04-le32d4.cache-3
b49ed000-b4a00000 r--p 00000000 08:05 801799 /usr/share/locale-langpack/zh_CN/LC_MESSAGES/glib20.mo
b4a00000-b4a2a000 rw-p 00000000 00:00 0
b4a2a000-b4b00000 ---p 00000000 00:00 0
b4b00000-b4b04000 r--s 00000000 08:05 666814 /var/cache/fontconfig/6eb3985aa4124903f6ff08ba781cd364-le32d4.cache-3已放弃

It's more stable now

gtkqq 现在已经相对稳定了, 但是我不确定还有没有其他的问题, 欢迎大家使用然后提供 bug信息, 如果有懂gdb的朋友, crash 的时候可以把 core文件发过来.

现在正在考虑其他功能的问题, 文件传输等等.

增加状态栏gtk_menu_popup位置定义的定位的方法

diff --git a/src/gui/tray.c b/src/gui/tray.c
index dff1ea1..e7bf08e 100644
--- a/src/gui/tray.c
+++ b/src/gui/tray.c
@@ -89,8 +89,10 @@ static void qq_tray_popup_menu(GtkStatusIcon *tray, guint but
 {
     QQTrayPriv *priv = G_TYPE_INSTANCE_GET_PRIVATE(tray, qq_tray_get_type()
                                                     , QQTrayPriv);
-    gtk_menu_popup(GTK_MENU(priv -> popupmenu), NULL, NULL, NULL
-                            , NULL, button, active_time);
+    gtk_menu_popup(GTK_MENU(priv -> popupmenu),
+                   NULL, NULL,
+                   gtk_status_icon_position_menu, tray, 
+                   button, active_time);
 }

在gnome-shell中,没有增加gtk_status_icon_position_menu这个函数方法,弹出的菜单会位于状态栏的下面。最后两个菜单非常不容易点到。。

Looking forward implementation of "send file/send offline file".

I think a QQ client under Linux with the capability of "send file/send offline file" would be possibly one of most desirable feature for Linux users' desperate requirement.

The old crap "linuxqq" or "libqq2010" which still developing either lacks this feature. I really hope "gtkqq" can accomplish the magnificent feat.

呼叫作者, 提问一个代码上的问题

@wxjeacen , facepopupwindow, 他的parent是GtkTextView, 这个widget的继承关系是 GtkWidget-》GtkContainer-》GtkTextView, 其中并没有GtkWindow, 但是init函数把它当GtkWindow操作, GTK2只给了一个warning, 但是gtk3 就直接crash了,请问这是为什么啊

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.