Home
Культ личности Ткаббера
tkabber@conference.jabber.ru
Четверг, 18 августа 2011< ^ >
bigote установил(а) тему: Официальная конференция поддержки Tkabber. Правила и информацию читайте в привате gluxoid по команде word show topic
It's an official Tkabber technical support conference. Please type "word show topic_eng" without quotes in gluxoid's private chat to learn more.
Конфигурация комнаты
Участники комнаты

GMT+4
[00:01:13] <kostix> http://sourceforge.net/mailarchive/message.php?msg_id=27960023
[00:02:24] <BrennendeR> kostix: и что это значит?
[00:02:50] <kostix> BrennendeR: это ссылка
[00:02:53] <BrennendeR> когда уж беты кончатся у них?
[00:03:11] <den_po_> ткабир на 8.6 не работает?
[00:03:15] <BrennendeR> kostix: я знаю, спасибо. только вот к чему оно?
[00:03:15] <_vt> когда они уже встроят WPF???!111
[00:03:23] <BrennendeR> den_po_: работает
[00:03:33] <kostix> BrennendeR: http://sourceforge.net/mailarchive/message.php?msg_id=27923246
[00:03:51] <kostix> _vt: мы впф не возьмём. там ШГ
[00:04:05] <_vt> kostix: давно починили
[00:04:13] <BrennendeR> Ok, 8.6b2 is out.  Yay.
[00:04:20] <BrennendeR> хе-хе, вступление замечательное
[00:04:28] verrens вышел(а) из комнаты
[00:04:31] <kostix> BrennendeR: это релиз-менеджер тиклев есличо
[00:07:32] <kostix> BrennendeR: а насчёт "к чему" -- это как раз 8.6b2, только упакованная эктивстейтом. у них свои маркетоидные беты, но реальных пацанов это не должно колыхать
[00:07:42] <kostix> то есть желающие могут потестировать и т.п.
[00:07:50] <BrennendeR> kostix: много букв. понял только, что релиз 8.6 будет не скоро. дальше 8.6 бета ... и так до 8.6 бета 999.999.999
[00:08:19] <kostix> BrennendeR: ну, продолжайте дрочить на свой руби же. а нам нужен работающий рантайм и минимум обновлений.
[00:08:20] <sulci> kostix, не болтай глупостей как малолетка!
[00:08:25] <kostix> debian & tcl FTW
[00:08:37] <BrennendeR> kostix: а мне вообще ничего не надо, я хомячок
[00:08:57] <kostix> BrennendeR: а я слоупок. привет, хомячок!
[00:09:18] <BrennendeR> kostix: )))
[00:09:41] <kostix> BrennendeR: )
[00:10:23] <kostix> кстати как включить смайлы в кде под фрибсд?
[00:10:43] hypersw вышел(а) из комнаты
[00:12:06] <BrennendeR> kostix: после этих слов тут опять будет затишье на неделю
[00:22:34] Deen_ вышел(а) из комнаты
[00:23:01] Deen_ вошёл(а) в комнату
[00:27:03] ancestor вышел(а) из комнаты
[00:29:59] Deen_ вышел(а) из комнаты
[00:30:22] Deen вошёл(а) в комнату
[00:46:51] diSabler вышел(а) из комнаты: time2sleep
[01:27:25] verrens вошёл(а) в комнату
[01:41:03] den_po_ вышел(а) из комнаты
[01:41:36] _vt вышел(а) из комнаты
[01:42:04] _vt вошёл(а) в комнату
[01:43:02] _vt вышел(а) из комнаты
[01:43:22] den_po_ вошёл(а) в комнату
[01:44:00] _vt вошёл(а) в комнату
[01:45:36] den_po_ вышел(а) из комнаты
[01:45:45] _vt вышел(а) из комнаты
[01:46:29] _vt вошёл(а) в комнату
[01:51:37] hypersw вошёл(а) в комнату
[01:59:24] _vt вышел(а) из комнаты
[01:59:47] _vt вошёл(а) в комнату
[03:27:43] _vt вышел(а) из комнаты
[03:59:33] LexsZero вошёл(а) в комнату
[03:59:43] <LexsZero> как в этом вашем тикле зделать FFI?
[04:00:05] <LexsZero> s/зделать/поюзать.
[04:00:23] verrens вышел(а) из комнаты
[04:01:08] <LexsZero> кажется, придется воскуривать страшный SWIG
[04:51:39] <kostix> LexsZero: wiki.tcl.tk/ffidl
[04:51:44] kostix вышел(а) из комнаты
[05:16:10] Deen вышел(а) из комнаты: Replaced by new connection
[05:17:50] Deen вошёл(а) в комнату
[05:17:55] hekp0maht вошёл(а) в комнату
[05:26:56] hypersw вышел(а) из комнаты
[07:10:27] Twice вошёл(а) в комнату
[07:47:19] Флинт вошёл(а) в комнату
[07:49:04] Флинт вышел(а) из комнаты
[07:49:22] LexsZero вышел(а) из комнаты
[08:19:02] Twice вышел(а) из комнаты
[08:31:33] marker вошёл(а) в комнату
[09:00:46] Rail вошёл(а) в комнату
[09:01:46] _vt вошёл(а) в комнату
[09:45:15] verrens вошёл(а) в комнату
[09:49:23] Twice вошёл(а) в комнату
[09:49:44] Rail вышел(а) из комнаты
[09:50:19] Rail вошёл(а) в комнату
[10:00:24] _vt вышел(а) из комнаты
[10:01:05] _vt вошёл(а) в комнату
[10:05:42] Deen вышел(а) из комнаты: Logged out
[10:06:23] Deen вошёл(а) в комнату
[10:19:00] plakhov вошёл(а) в комнату
[10:19:05] ♺ вышел(а) из комнаты
[10:19:20] ♺ вошёл(а) в комнату
[10:47:41] kostix вошёл(а) в комнату
[10:56:07] kostix вышел(а) из комнаты
[10:59:06] ancestor вошёл(а) в комнату
[11:13:20] <_vt> ancestor: а ты тогда не разобрался почему окошко передачи файлов не закрывается?
[11:14:02] <ancestor> _vt, нет. У меня закрывается все.
[11:14:05] <_vt> я тут вкуриваю уже полчаса в код, не могу понять что за $command передается обработчику вызывающему это окошку
[11:14:17] <_vt> ancestor: ну мы тогда еще прибивали окошки через консоль же
[11:15:04] <ancestor> _vt, ну это я помню. Но у меня пока с незакрывающимися окнами проблем не было.
[11:15:24] <ancestor> _vt, в том коде черт ногу сломит.
[11:17:38] <ancestor> _vt, не закрывается видимо окно, потому что ожидается очередная порция данных с сокета.
[11:20:55] <_vt> ancestor: вот на окошко отправки там изначально вешается на кнопку отмены убийство окна. А при получении, то ли $command вешается, который непойми откуда берется, то ли ниче не вешается и надо повесить :)
[11:23:00] <ancestor> _vt, ты какой файл с кодом смотришь?
[11:24:58] <_vt> ancestor: да все. Вот окно отправки в plugins/filetransfer/si.tcl
[11:25:12] <_vt> то есть приема
[11:25:25] <_vt>     $w add -text [::msgcat::mc "Cancel"] -command \
    [namespace code [list recv_file_cancel $token $w $command]]
[11:25:45] <_vt> вот в этот recv_file_cancel откуда $command попадает?
[11:27:07] <ancestor> _vt, ну ты recv_file_cancel посмотри и разберись что за command такой.
[11:35:44] <ancestor> _vt, этот $command видимо с запросом на передачу приходит. Посмотри si::si_handler.
[11:36:04] <ancestor> si::register_profile $::NS(file-transfer) [namespace current]::si::si_handler
[11:37:07] <ancestor> Дальше нужно si::register_profile смотреть, он в другом месте где-то.
[11:39:35] <ancestor> Вот тут в tkabber/si.tcl
[11:39:55] <_vt> ancestor: дык странно что внутри recv_file_cancel сначала делается destroy, потом только этот command обрабатывается
[11:41:53] <ancestor> _vt, а чего странного, окно уничтожается, а команда-то есть, она исполняется.
[11:42:25] <_vt> так оно не уничтожается :)
[11:42:31] <_vt>     bind $w <Destroy> {}
    destroy $w
[11:42:44] <_vt> вот этот bind случайно не ломает этот destroy?
[11:43:24] <ancestor> А это что: destroy $w
[11:43:40] <ancestor> _vt, нет, это всего лишь обработчик, который вызывается, при разрушении окна. Он очищается просто, до этого что-то там устанавливалось.
[11:44:26] <_vt> может там надо $f а на $w передавать? %)
[11:44:55] <_vt> а, не, кнопочки на $w вешаются
[11:45:28] <ancestor> Там файл закрывался при нажатии на cancel видимо: bind $w <Destroy> [namespace code [list recv_file_close [double% $token] [double% $w] %W]]
[11:45:52] <_vt> ancestor: это где??
[11:46:35] <ancestor> _vt, там же где recv_file_cancel.
[11:47:18] <ancestor> В том же файле в смысле.
[11:48:20] <ancestor> В si::recv_file_dialog и в si::recv_file_start.
[11:48:35] <_vt> аа, понял, то есть при создании окна туда биндится recv_file_cancel, а при начале отправки - recv_file_close
[11:48:47] <_vt> а надо чтоб recv_file_cancel значит было
[11:49:59] <ancestor> А файл кто закрывать будет?
[11:50:09] <_vt> надо наверное просто из cancel вызывать close и всего делов
[11:50:35] <_vt> ну или и close вызывать cancel заодно
[11:50:40] <_vt> из*
[11:51:28] ♺ вышел(а) из комнаты: Replaced by new connection
[11:51:31] ♺ вошёл(а) в комнату
[11:53:07] Флинт вошёл(а) в комнату
[11:53:32] <ancestor> Нужно думать. Мне кажется там не все так просто.
[11:55:42] _vt вышел(а) из комнаты
[11:56:12] _vt вошёл(а) в комнату
[11:59:59] <_vt>     if {$w1 != $w2} return
[12:00:06] <_vt> вот в этом проблема
[12:00:22] <_vt> если это шаманство не соблюдается, то и отмены не происходит
[12:00:41] <_vt> осталось выяснить что это
[12:01:17] <ancestor> Окна же.
[12:01:32] <_vt> ну а что такое %W ?
[12:01:54] <_vt> %W
    The path name of the window to which the event was reported (the window field from the event). Valid for all event types.
[12:03:07] <ancestor> Ну вот ты сам ответил.
[12:03:44] <_vt> тогда что такое [double% $w] ?
[12:03:52] <_vt> может надо просто $w?
[12:05:29] <_vt> такое ощущение что это нажатие на cancel не срабатывает никогда, только если успешный прием был - оно вызовом из другого места закрывается.
[12:06:36] <ancestor> _vt, окно в любом случае должно разрушаться, хотя бы при нажатии на кнопку закрытия окна, которая в верхнем правом углу.
[12:07:28] <_vt> ancestor: так на нее делают bind <Destroy> recv_file_close и поэтому оно не разрушается
[12:07:48] <ancestor> _vt, нее, ты похоже не понял.
[12:08:08] <ancestor> _vt, это просто обработчик события же, он выполняется при наступлении события.
[12:09:59] <_vt> A Destroy event is delivered to a window when it is destroyed.
When the Destroy event is delivered to a widget, it is in a ``half-dead'' state: the widget still exists, but most operations on it will fail.
[12:10:21] <ancestor> Событие никуда не девается, оттого что ты на него бинд вешаешь.
[12:10:55] <_vt> ancestor: его генерирует крестик или вызов destroy $w?
[12:10:59] <_vt> или оба?
[12:11:26] <ancestor> _vt, там оно явно вызывается destroy $w, а на кнопке закрытия окна оно неявно задано.
[12:11:50] <ancestor> И тот и тот.
[12:14:37] <ancestor> Может в самом тикле баги?!
[12:16:11] <_vt> ancestor: ты лучше скажи, по твоей логике получается что обработать крестик сообщением типа "вы точно хотите выйти?" нельзя?
[12:16:44] <_vt> я почему-то думал что если событие <Destroy> обработать, то окно порушится в зависимости от того, какой результат обработчик вернет
[12:17:23] <ancestor> _vt, как-то можно, наверное.
[12:20:40] <_vt> As I read it, Tk catches the Destroy event alright, but the problem is that it is too late: the window destruction is already in motion at the time and there's no way to "undestroy" it from within binding. I think you need to create a "wm protocol" handler for WM_DELETE_WINDOW.
[12:20:59] <_vt> странно все это
[12:21:14] <_vt> значит оно _всегда_ должно крестиком закрываться
[12:21:36] <ancestor> Угу, как я и говорил.
[12:25:18] marker вышел(а) из комнаты
[12:26:03] _vt вышел(а) из комнаты
[12:26:32] _vt вошёл(а) в комнату
[12:29:51] <_vt> ancestor: именно в сравнении w1 и w2 дело. Щас проверил. Когда проходит его, то закрывается, когда не проходит - не закрывается
[12:31:50] <ancestor> _vt, ну конечно, у тебя окно из-за этого и виснет, так как файл не закрыт. Такое видимо в винде только возможно.
[12:33:06] <_vt> ancestor: ну а у тебя когда висло - это в винде было?
[12:33:40] <ancestor> _vt, да вроде.
[12:36:06] <ancestor> _vt, в общем там при сравнении оказывается что одно и то же окно не одно и тоже, может один из параметров пустой?
[12:37:30] <ancestor> _vt, трассировку сделай, типа поставь перед ифом puts $w1 и puts $w2 и смотри чего там.
[12:45:10] _vt вышел(а) из комнаты
[12:46:32] _vt вошёл(а) в комнату
[12:47:12] <_vt> ancestor: куда в венде оно выведет? Я делаю tk_messageBox :)
[12:47:51] kostix вошёл(а) в комнату
[12:48:15] <ancestor> _vt, в консоль. У тебя она есть у ткаббера.
[12:48:26] <ancestor> _vt, ты ее просто открой.
[12:48:47] _vt вышел(а) из комнаты
[12:48:53] <ancestor> Службы --> Инструменты отладки --> Показать консоль
[12:49:41] <ancestor> Это в линуксах нужно отдельно tkCon ставить, а в винде у Ткаббера она и так есть.
[12:49:53] verrens вышел(а) из комнаты
[12:49:53] _vt вошёл(а) в комнату
[12:52:13] <_vt> хыыы
[12:52:19] <_vt> W1=.rfd1, W2=%W
W1=.rfd1, W2=%W
W1=.rfd1, W2=%W
W1=.rfd1, W2=%W
W1=.rfd1, W2=%W
W1=.rfd1, W2=%W
W1=.rfd1, W2=%W
W1=.rfd1, W2=%W
W1=.rfd1, W2=%W
W1=.rfd1, W2=%W
W1=.rfd1, W2=%W
W1=.rfd1, W2=%W
W1=.rfd1, W2=%W
W1=.rfd1, W2=%W
W1=.rfd1, W2=%W
W1=.rfd1, W2=%W
W1=.rfd1, W2=%W
W1=.rfd1, W2=%W
W1=.rfd1, W2=%W
W1=.rfd1, W2=.rfd1.bbox.b0
W1=.rfd1, W2=.rfd1.bbox.b1
W1=.rfd1, W2=.rfd1.bbox
W1=.rfd1, W2=.rfd1.frame.lname
W1=.rfd1, W2=.rfd1.frame.name
W1=.rfd1, W2=.rfd1.frame.lsize
W1=.rfd1, W2=.rfd1.frame.size
W1=.rfd1, W2=.rfd1.frame.ldesc
W1=.rfd1, W2=.rfd1.frame.desc
W1=.rfd1, W2=.rfd1.frame.lsaveas
W1=.rfd1, W2=.rfd1.frame.saveas
W1=.rfd1, W2=.rfd1.frame.browsefile
W1=.rfd1, W2=.rfd1.frame.pb.bar
W1=.rfd1, W2=.rfd1.frame.pb
W1=.rfd1, W2=.rfd1.frame
W1=.rfd1, W2=.rfd1.sep
W1=.rfd1, W2=.rfd1
[12:52:23] <_vt> упс
[12:52:51] <_vt> вот в процессе передачи получается %W, то есть пустое?
[12:53:09] <_vt> а как передача кончилась, то разные имена подставляются и в итоге закрывается :)
[12:57:39] <ancestor> _vt, ПОЧИНИ!!1
[12:59:34] <_vt> ancestor: я вообще не понимаю что происходит
[12:59:47] <_vt> откуда берутся эти окна?
[12:59:54] <_vt> почему они разные?
[13:00:03] <_vt> почему оно может быть пустым?
[13:01:53] <ancestor> _vt, они одинаковые должны быть, этот иф для того случая, когда у тебя несколько диалогов передачи открыто.
[13:02:22] <ancestor> Я так думаю! (с)
[13:07:18] <_vt> а что такое namespace code ?
[13:07:44] <_vt> а, нашел
[13:12:46] <_vt> ancestor: ааа, кажется я понял, %W может быть разным, если окна - дочерние??
[13:13:08] <_vt> типа если я сделал bind на $w, то на все дочерние оно тоже распространяется, да?
[13:13:25] <ancestor> _vt, ты kostix'а тряси по таким вопросам, я не больше тебя знаю в тикле.
[13:15:23] <_vt> ancestor: у kostix былоформа, лыжи, водные лыжи....
[13:15:29] <_vt> быдлоформа*
[13:15:56] <ancestor> _vt, куда катится мир?!
[13:17:07] <kostix> _vt: s/водные/горные/g
[13:17:12] <ancestor> _vt, тебе из всего пути нужно получить .rfd1 и его передавать везде? Там вроде какая-то команда есть.
[13:18:16] <kostix> _vt: я начало дискуссии не видел. если ты в нескольких предложениях сформулируешь проблему, я, может, что-нибудь смогу сказать
[13:18:31] <ancestor> _vt, для консоли можешь мой плагин скачать, он помещает консоль в таб, ну и не забудь еще tkCon поставить.
[13:18:38] _vt вышел(а) из комнаты
[13:19:07] _vt вошёл(а) в комнату
[13:20:41] <ancestor> _vt, наверное вот эта: winfo toplevel
[13:24:49] Флинт вышел(а) из комнаты
[13:26:19] Sérgio вышел(а) из комнаты
[13:26:34] <_vt> kostix: окошко передачи файлов не закрывается в некоторых случаях, если ткаббер принимающая сторона, например если необрабатавыемая ошибка произошла. Судя по дебагу получается такое, вот при создании этого окна на "отмену" и на закрытие окна вот такое вешается
    $w add -text [::msgcat::mc "Cancel"] -command \
    [namespace code [list recv_file_cancel $token $w $command]]
    
    bind $w <Destroy> \
     [double% [namespace code [list recv_file_cancel $token $w $command]]]
В этот момент все работает. Затем если начать передачу файлов кнопкой "принять", то запускается recv_file_start и внутри есть
    $state(w) itemconfigure 0 -state disabled
    $state(w) itemconfigure 1 -command [namespace code [list recv_file_close $token $w %W]]
    bind $w <Destroy> [namespace code [list recv_file_close [double% $token] [double% $w] %W]]
вот внутрь recv_file_close до какого-то момента(завершения передачи) почему-то не попадает %W, вернее оно в виде строки %W и попадает, а не в виде айди окна. Если передача нормально завершилась, тогда %W правильно показывает на окно, и тогда мы его можем убить. До этого момента - ни Cancel ни крестик окна не могут остановить передачу.
[13:30:25] <_vt> а еще есть подозрение что события где-то "зажевываются", пока процесс передачи файла идет
[13:30:53] <_vt> потому что я уже не тыкаю, потом видно что ткаббер дернулся и перестал принимать файл и тогда само срабатывает
[13:31:51] teo вошёл(а) в комнату
[13:53:05] <_vt> попробовал в линуксе - там нормально закрывается, правда выдавая ошибку - http://paste.org.ru/?ijvajm
[14:01:45] _vt вышел(а) из комнаты
[14:07:13] _vt вошёл(а) в комнату
[14:08:14] _vt вышел(а) из комнаты: Replaced by new connection
[14:08:17] _vt вошёл(а) в комнату
[14:08:32] Sérgio вошёл(а) в комнату
[14:10:15] <_vt> во, и если в виндовсе из консоли послать destroy .rfd2, то тоже закрывается с этой же ошибкой
[14:10:59] <_vt> получается проблема именно в том, что почему-то вместо .rfd2 какое-то время посылается %W как строка
[14:13:59] Sérgio вышел(а) из комнаты
[14:25:25] den_po_ вошёл(а) в комнату
[14:37:53] Dominges вышел(а) из комнаты
[14:39:04] Dominges вошёл(а) в комнату
[14:57:10] Twice вышел(а) из комнаты
[14:57:18] BrennendeR вышел(а) из комнаты
[14:57:18] BrennendeR вошёл(а) в комнату
[15:07:20] verrens вошёл(а) в комнату
[15:07:29] verrens вышел(а) из комнаты
[15:07:37] verrens вошёл(а) в комнату
[15:39:47] verrens вышел(а) из комнаты
[15:40:07] verrens вошёл(а) в комнату
[15:44:10] Rail вышел(а) из комнаты
[15:44:14] Twice вошёл(а) в комнату
[15:51:28] _vt вышел(а) из комнаты
[15:58:06] Twice вышел(а) из комнаты: >_>
[16:05:08] teo вышел(а) из комнаты: Disconnected: connection closed
[16:14:03] _vt вошёл(а) в комнату
[16:15:17] _vt вышел(а) из комнаты
[16:15:55] _vt вошёл(а) в комнату
[16:21:22] plakhov вышел(а) из комнаты
[16:29:43] Twice вошёл(а) в комнату
[16:30:28] teo вошёл(а) в комнату
[17:00:04] sceptic вышел(а) из комнаты
[17:04:24] ♺ вышел(а) из комнаты: Replaced by new connection
[17:04:29] ♺ вошёл(а) в комнату
[17:07:32] Twice вышел(а) из комнаты: >_>
[17:08:59] Sérgio вошёл(а) в комнату
[17:19:39] lukish вышел(а) из комнаты
[17:58:08] _vt вышел(а) из комнаты
[17:59:19] den_po_ вышел(а) из комнаты
[18:37:26] _vt вошёл(а) в комнату
[18:42:56] den_po_ вошёл(а) в комнату
[19:15:27] hypersw вошёл(а) в комнату
[19:17:37] den_po_ вышел(а) из комнаты
[19:18:42] den_po_ вошёл(а) в комнату
[19:25:52] Rail|home вошёл(а) в комнату
[19:32:37] Deen вышел(а) из комнаты: Replaced by new connection
[19:32:47] Deen вошёл(а) в комнату
[20:22:57] verrens вышел(а) из комнаты
[20:23:05] verrens вошёл(а) в комнату
[20:27:38] Deen вышел(а) из комнаты: Logged out
[20:28:59] sceptic вошёл(а) в комнату
[20:29:12] Deen_ вошёл(а) в комнату
[20:43:28] kostix вышел(а) из комнаты
[20:49:55] sceptic вышел(а) из комнаты: Replaced by new connection
[20:49:58] sceptic вошёл(а) в комнату
[21:02:28] Dominges вышел(а) из комнаты
[21:04:46] teo вышел(а) из комнаты: Disconnected: Replaced by new connection
[21:04:47] teo вошёл(а) в комнату
[21:16:14] Dominges вошёл(а) в комнату
[21:21:23] Rail|home вышел(а) из комнаты
[21:30:59] den_po_ вышел(а) из комнаты
[21:32:14] den_po_ вошёл(а) в комнату
[21:53:25] hypersw вышел(а) из комнаты
[21:56:18] hekp0maht вышел(а) из комнаты
[22:25:01] Deen_ вышел(а) из комнаты: Replaced by new connection
[22:25:02] Deen_ вошёл(а) в комнату
[22:26:13] den_po_ вышел(а) из комнаты
[22:27:17] den_po_ вошёл(а) в комнату
[22:27:21] Deen_ вышел(а) из комнаты
[22:30:49] den_po_ вышел(а) из комнаты: Replaced by new connection
[22:30:50] den_po_ вошёл(а) в комнату
[22:31:12] Deen вошёл(а) в комнату
[22:49:38] ancestor вышел(а) из комнаты
[22:50:36] ancestor вошёл(а) в комнату
[22:51:25] hypersw вошёл(а) в комнату
[23:44:32] verrens вышел(а) из комнаты
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!