uralplan / psi-dev

Automatically exported from code.google.com/p/psi-dev
0 stars 0 forks source link

копирование текста чата копирует имя контакта чата (muc) #524

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
Шаги по воспроизведению проблемы:
What steps will reproduce the problem?
1. открыто окно конференции. выбираем 
участника щелчком мыши.
2. выделяем текст в чате в надежде его 
скопировать. копируем через Ctrl+C
3. щелкаем по полю ввода (внизу под чатом), 
вставляем.
4. вставляется имя участника который был 
выделен.

Каков ожидаемый результат?
What is the expected output?
копирование по Ctrl+C текста, выделенного в 
чате.

Что Вы видите вместо этого?
What do you see instead?
копирование имени участника, ранее 
выделенного в списке участников чата (muc)

Какую версию Psi+ / ОС Вы используете?
What version of the Psi+/OS are you using?
в любой версии воспроизводится.
Psi+ v0.16.14 (20121017)
Qt версии 4.7.4.
Linux Ubuntu 10.10.
Kernel 3.5.7-zen-proxym-3
Gnome 2.32.0

Дополнительная информация по проблеме:
Additional information:
По-моему это должно решаться перебросом 
фокуса в область чата в момент выделения 
мышью / клика по чату, либо если это 
невозможно, то путем переноса фокуса в 
область ввода текста сообщения (под чатом).
Правильное решение этого бага решит также 
этот баг: https://code.google.com/p/psi-dev/issues/detail?id=67#c46 
(конкретно коммент 46).

Original issue reported on code.google.com by W.prox...@gmail.com on 19 Oct 2012 at 11:10

GoogleCodeExporter commented 8 years ago
С копированием участника конференции 
понятно - надо исправлять. Но такая же 
ситуация получается если предварительно 
выделить текст в теме конфы (тот что 
сверху). Как в таком случае поступать, 
копировать текст из темы или текст из чата 
конференции?

Original comment by li...@mail.ru on 16 Nov 2012 at 4:27

GoogleCodeExporter commented 8 years ago
если последнее действие было выделение 
текста в чате, то естественно надо 
копировать текст из чата.
если последнее действие - выделение текста 
в теме конфы, то копировать текст из темы 
конфы.
такое поведение пользователь ожидает. его 
ему и нужно дать.

Original comment by W.prox...@gmail.com on 16 Nov 2012 at 7:26

GoogleCodeExporter commented 8 years ago
А если пользователь уже не помнит что там 
последнее выделялось? :)
Естественным, как мне видится, будет 
копирование того что выделено. Но у нас 
четыре независимых объекта для выделения в 
конференции: лог конференции (log), строка 
ввода сообщения или команд (mle) список 
участников конференции (lv_users) и топик(le_topic). 
Может имеет смысл при выделении на одном из 
перечисленных виджетов снимать выделение 
на остальных?
Сейчас обработчик события универсальный - 
один и тот же код работает для конфы и для 
обычного чата (bool ChatView::handleCopyEvent(QObject *object, 
QEvent *event, ChatEdit *chatEdit).

Original comment by li...@mail.ru on 22 Nov 2012 at 2:47

GoogleCodeExporter commented 8 years ago
1) То, что отдельно взятый пользователь не 
помнит что он выделял - это его проблемы. 
Копировать нужно именно то, что выделялось 
в последнюю очередь и никак иначе.
2) Снятие лишнего выделения на том, что 
выделялось ранее, более чем логично.

Original comment by W.prox...@gmail.com on 22 Nov 2012 at 2:56

GoogleCodeExporter commented 8 years ago
Чатлог невыделяемый (nofocus), в этом проблема 

Original comment by wadea...@gmail.com on 22 Nov 2012 at 3:59

GoogleCodeExporter commented 8 years ago
> Чатлог невыделяемый (nofocus), в этом проблема

Там всего лишь определяется от кого пришло 
событие и есть ли выделенный текст у строки 
ввода. А для конференций придется добавить 
пару механизмов дополнительно.

Original comment by li...@mail.ru on 22 Nov 2012 at 5:19

GoogleCodeExporter commented 8 years ago
надо клик на чатлоге перехватывать и 
фокусировать поле ввода. а там уже есть все 
механизмы

Original comment by rion4ik on 22 Nov 2012 at 5:30

GoogleCodeExporter commented 8 years ago
> надо клик на чатлоге перехватывать и 
фокусировать поле ввода. а там уже есть все 
механизмы

а если это будет клик с целью выделения 
мышью?
Похоже правильно что я не стал сразу 
патчить. Сколько людей, столько мнений. 
Будем ждать консенсуса :)

Original comment by li...@mail.ru on 22 Nov 2012 at 8:15

GoogleCodeExporter commented 8 years ago
я не совсем в теме (хотя бы потому что в код 
не смотрел), но я никак не могу взять в толк, 
почему окно (виджет или что там) чата, 
которое должно относиться по идее к классу, 
могущему ловить фокус, относится к классу 
имеющему характеристику nofocus? может 
все-таки переделать класс / 
перенаследовать будет правильнее?..
точно такая же гадость в Ткаббере с 
отсутствием фокуса у окна чата, из-за чего 
там приходится химичить в файле 
конфигурации, который есть скрипт tcl (без 
этого там нельзя копировать текст из чата 
обычными хоткеями!). это определенно ошибка 
архитектуры программы.

Original comment by W.prox...@gmail.com on 22 Nov 2012 at 8:32

GoogleCodeExporter commented 8 years ago
> а если это будет клик с целью выделения 
мышью?

без разницы.

Original comment by rion4ik on 23 Nov 2012 at 2:14

GoogleCodeExporter commented 8 years ago
Ну раз других предложений нет, тогда 
перебросом фокуса. Все равно выделение с 
темы должно само сняться в таком случае. Я 
смогу только после приезда. rion4ik может ты 
запатчишь? Код, как я понял, ты уже 
посмотрел :)

Original comment by li...@mail.ru on 23 Nov 2012 at 6:53

GoogleCodeExporter commented 8 years ago
не думаю что переброска фокуса как-то 
повлияет на выделение. ведь на самом 
чатлоге фокуса всё равно никогда нет.

Original comment by rion4ik on 23 Nov 2012 at 6:56

GoogleCodeExporter commented 8 years ago
Я сейчас писал про строку с темой конфы. С 
чатлогом и так все понятно.

Original comment by li...@mail.ru on 23 Nov 2012 at 7:25

GoogleCodeExporter commented 8 years ago
liuch, ты ж уже переехал, правда?Обещания 
держать надо...
https://code.google.com/p/psi-dev/issues/detail?id=524#c11

Original comment by korobcoff on 18 Dec 2013 at 12:01

GoogleCodeExporter commented 8 years ago
http://code.google.com/p/psi-dev/issues/detail?id=524#c12
> не думаю что переброска фокуса как-то 
повлияет на выделение. ведь на самом 
чатлоге фокуса всё равно никогда нет.

при выделении чего-либо в чатлоге фокус 
можно перебрасывать в поле ввода (раз в 
чатлог нельзя). тогда копирование текста 
потом будет идти из чатлога.

Original comment by W.prox...@gmail.com on 24 Dec 2013 at 5:17

GoogleCodeExporter commented 8 years ago
по идее мы можем отловить нажатие кнопки 
мыши на чатлоге и сразу перекидывать фокус. 
согласен. правда не знаю как это повлияет 
на выделение.

Original comment by rion4ik on 24 Dec 2013 at 5:52

GoogleCodeExporter commented 8 years ago
Я решил использовать способ переброса 
фокуса при клике на чатлог. В линуксе 
нареканий нет. Надо попробовать в других 
ОС. Пришлось немного покопаться, т.к. у меня 
eventFilter не работал если его установить на 
QTextEdit, только если на дочерний виджет. С 
QWebView все нормально. Ввиду небольшой 
костыльности патча не рискнул выкладывать 
его в репу. Может будут идеи по-лучше, в 
частности по поводу QTextEdit. Условное 
компилирование пришлось добавить именно 
из-за его странного поведения.
Протестировано на обоих сборках в Debian testing, 
Qt 4.8.6.
Патч прилагается.

Original comment by li...@mail.ru on 13 Jan 2014 at 10:37

Attachments:

GoogleCodeExporter commented 8 years ago
Исправлено: 
https://github.com/psi-plus/main/commit/98f0b71a5844b167c3399c0f4f9e7e1336fb13a6

Original comment by li...@mail.ru on 14 Jan 2014 at 8:20

GoogleCodeExporter commented 8 years ago
[22:03:44] <proxy_m> liuch: привет. помнишь ты фиксил 
багу с копированием текста из чата 
конференции? есть такая же фигня с 
копированием текста из чата личного. 
кликаешь там в том текстовое поле где 
название контакта. а потом пытаешься 
выделить и скопировать текст из чата и 
копируется не то.

[22:06:25] <liuch> proxy_m: Ага, есть такое. Надо 
выяснить как правильно сделать. Т.к. при 
клике на текст который хочется 
скопировать, фокус не передается. И я не 
уверен, нужно ли тут такое поведение. В 
конфе я именно так поправил, передачей 
фокуса.

[22:15:41] <mrDoctorWho> копируется обычно то что в 
поле ввода
[22:16:03] <mrDoctorWho> порой напрягает кстати, но 
привыкнуть можно

[22:19:22] <satrap> proxy_m: *dntknw* зачем еще жать на 
кнопки клавы. Если есть правая мышь
[22:19:58] <mrDoctorWho> зачем мышь если есть клава?
[22:20:05] <liuch> mrDoctorWho: +1

Original comment by W.prox...@gmail.com on 27 Feb 2014 at 7:04

GoogleCodeExporter commented 8 years ago
[23:51:34] <nsof_> А я один приверженец того, что 
копироваться должно то, что выделили 
послдним, а остальные выдления должны 
сбрасываться? 

Original comment by W.prox...@gmail.com on 27 Feb 2014 at 8:07

GoogleCodeExporter commented 8 years ago
Исправлено для чата: 
https://github.com/psi-plus/main/commit/d83079aa1103bfb4699a46f29ce2a29822964ca7

Original comment by li...@mail.ru on 19 Mar 2014 at 7:22

GoogleCodeExporter commented 8 years ago

Original comment by vladimir.shelukhin on 2 May 2014 at 1:22