ProxiDoz / vacuum-im

Automatically exported from code.google.com/p/vacuum-im
GNU General Public License v3.0
0 stars 0 forks source link

Объедините Enter и Return #436

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
Объедините Enter и Return, чтобы сообщения можно 
было и правым этером и центральным 
отправлять, щас - либо тем либо другим...

Как вариант можно сделать чтобы в горячих 
клавишах можно было сделать 2 клавиши на 
каждую опцию...

Original issue reported on code.google.com by wkg...@gmail.com on 14 Mar 2011 at 9:38

GoogleCodeExporter commented 8 years ago
Где-то уже это обсуждалось, так сделать 
нельзя т.к. для системы это две разные 
клавиши, а делать только из-за этого 
поддержку нескольких клавиш для одного 
действия не целесообразно.

Original comment by potapov.s.a on 16 Mar 2011 at 5:09

GoogleCodeExporter commented 8 years ago
Почему только для этого? поддержка 
нескольких нужна и для других целей...

Original comment by wkg...@gmail.com on 16 Mar 2011 at 5:14

GoogleCodeExporter commented 8 years ago
Явной такой необходимости для других целей 
я не вижу. Настрой клавишу, которой чаще 
пользуешься и быстро привыкнешь 
отправлять только ей.

Original comment by potapov.s.a on 16 Mar 2011 at 6:01

GoogleCodeExporter commented 8 years ago
Ваше дело, но лично меня только этот момент 
останавливает чтоб перейти на Ваш 
замечательный в остальном клиент... :(

Original comment by wkg...@gmail.com on 16 Mar 2011 at 6:59

GoogleCodeExporter commented 8 years ago
один Enter понятно, а второй какой? тот что на 
нумпаде что-ли? если да - то я однозначно 
против. сейчас Enter нумпада делает переход 
на новую строку без отправки сообщения, и 
это удобно.

Original comment by can...@inbox.ru on 16 Mar 2011 at 7:02

GoogleCodeExporter commented 8 years ago
Может кто-нибудь может подсказать где 
можно что-нибудь пропатчить чтоб это 
реализовать(объединить их для клиента), я 
бы сам пропатчил, пытался найти, че то не 
получается...чисто мне, не надо включать в 
проект такой патч...

Original comment by wkg...@gmail.com on 30 Sep 2011 at 10:13

GoogleCodeExporter commented 8 years ago
./plugins/messagewidgets/editwidget.cpp

void EditWidget::setSendShortcut(const QString &AShortcutId)
{
        if (FSendShortcutId != AShortcutId)
        {
                if (!FSendShortcutId.isEmpty())
                        Shortcuts::removeWidgetShortcut(FSendShortcutId,ui.medEditor);
                FSendShortcutId = AShortcutId;
                if (!FSendShortcutId.isEmpty())
                        Shortcuts::insertWidgetShortcut(FSendShortcutId,ui.medEditor);
                onShortcutUpdated(FSendShortcutId);
                emit sendShortcutChanged(FSendShortcutId);
        }
}

как можно прям напрямую добавить тут 
второй энтер который возле нумпада, без 
всяких красивых настроек? в исходниках 
вшить его...?

Original comment by wkg...@gmail.com on 30 Sep 2011 at 10:16

GoogleCodeExporter commented 8 years ago
Самое просто отлавливать в EditWidget::eventFilter 
нажатие второй клавиши и делать действия 
аналогичные нажатию на горячую клавишу.

ПРИБЛИЗИТЕЛЬНО вот так, сам не проверял

bool EditWidget::eventFilter(QObject *AWatched, QEvent *AEvent)
{
    bool hooked = false;
    if (AWatched==ui.medEditor && AEvent->type()==QEvent::KeyPress)
    {
        QKeyEvent *keyEvent = static_cast<QKeyEvent *>(AEvent);
        if (FSendShortcut[0] == keyEvent->key()+keyEvent->modifiers())
        {
            hooked = true;
            onShortcutActivated(FSendShortcutId,ui.medEditor);
        }
        else if (Qt::Key_Enter == keyEvent->key()+keyEvent->modifiers())
        {
            hooked = true;
            onShortcutActivated(FSendShortcutId,ui.medEditor);
        }
        else
        {
            emit keyEventReceived(keyEvent,hooked);
        }
    }
    else if (AWatched==ui.medEditor && AEvent->type()==QEvent::ShortcutOverride)
    {
        hooked = true;
    }
    return hooked || QWidget::eventFilter(AWatched,AEvent);
}

Original comment by potapov.s.a on 30 Sep 2011 at 1:01

GoogleCodeExporter commented 8 years ago
Даже собралось, но не работает :( может еще 
есть какой вариант?

Original comment by wkg...@gmail.com on 30 Sep 2011 at 4:24

GoogleCodeExporter commented 8 years ago
                else if (Qt::Key_Enter == keyEvent->key()+keyEvent->modifiers())
                {
                        qDebug() << "ok!";
                        hooked = true;
                        onShortcutActivated(FSendShortcutId,ui.medEditor);
                }

так ok не выводит, не срабатывает условие... :(

Original comment by wkg...@gmail.com on 30 Sep 2011 at 4:37