Bug 447452 - [plasma-interactiveconsole] Ctrl+E to Execute is an ambiguous shortcut
Summary: [plasma-interactiveconsole] Ctrl+E to Execute is an ambiguous shortcut
Status: REPORTED
Alias: None
Product: Plasma SDK
Classification: Plasma
Component: General (show other bugs)
Version: 5.23.4
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: Plasma Bugs List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-12-24 01:11 UTC by Chris Holland
Modified: 2021-12-24 03:24 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Chris Holland 2021-12-24 01:11:20 UTC
This is technically a bug for plasma-workspace, since that's where plasma-interactiveconsole is.

* https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/1293#note_363801
* https://invent.kde.org/plasma/plasma-workspace/-/tree/master/interactiveconsole
* https://invent.kde.org/plasma/plasma-workspace/-/blob/master/interactiveconsole/interactiveconsole.cpp#L188

Looks like it's bound to Ctrl+E, but pressing that shows that the shortcut is Ambiguous. Looks like you need to not be focusing the code TextArea (select text in the output TextArea) for Ctrl+E to work, which defeats the purpose of the shortcut. Also, there is no settings menu (probably meant for Kate).

Ctrl+B seems to be bound to... Toggle Breakpoint or something? It turns the bg blue on the line with the cursor.

We should probably keep `Alt+E` generated by the i18n text. So we should be using something like:

    auto shortcuts = QList<QKeySequence>() << m_executeAction->shortcut() << (Qt::CTRL | Qt::Key_E) << (Qt::CTRL | Qt::Key_B);
    m_executeAction->setShortcuts(shortcuts);

We'll also need to figure out how to disable the default KTextEditor Ctrl+B / Ctrl+E actions so they're not ambiguous.

* https://doc.qt.io/qt-5/qaction.html#shortcuts
Comment 1 Chris Holland 2021-12-24 03:24:57 UTC
Looks like Ctrl+B is bookmark, not breakpoint.

https://github.com/KDE/ktexteditor/blob/92cab6563e46db4260c89b7b12c87237369f857c/src/view/kateview.cpp#L518

        a = ac->addAction(QStringLiteral("Previous Editing Line"));
        a->setText(i18n("Go to previous editing line"));
        ac->setDefaultShortcut(a, QKeySequence(Qt::CTRL + Qt::Key_E));

        a = ac->addAction(QStringLiteral("Next Editing Line"));
        a->setText(i18n("Go to next editing line"));
        ac->setDefaultShortcut(a, QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_E));

https://github.com/KDE/ktexteditor/blob/da6275179c896613272bc4d70e9dc41943c30f5b/src/utils/katebookmarks.cpp#L48

    m_bookmarkToggle = new KToggleAction(i18n("Set &Bookmark"), this);
    ac->addAction(QStringLiteral("bookmarks_toggle"), m_bookmarkToggle);
    m_bookmarkToggle->setIcon(QIcon::fromTheme(QStringLiteral("bookmark-new")));
    ac->setDefaultShortcut(m_bookmarkToggle, Qt::CTRL + Qt::Key_B);
    m_bookmarkToggle->setWhatsThis(i18n("If a line has no bookmark then add one, otherwise remove it."));
    connect(m_bookmarkToggle, &QAction::triggered, this, &KateBookmarks::toggleBookmark);

https://github.com/KDE/ktexteditor/blob/92cab6563e46db4260c89b7b12c87237369f857c/src/view/kateview.cpp#L690

    a = m_toggleBlockSelection = new KToggleAction(i18n("Bl&ock Selection Mode"), this);
    ac->addAction(QStringLiteral("set_verticalSelect"), a);
    ac->setDefaultShortcut(a, QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_B));
    a->setWhatsThis(i18n("This command allows switching between the normal (line based) selection mode and the block selection mode."));
    connect(a, &QAction::triggered, this, &KTextEditor::ViewPrivate::toggleBlockSelection);