forked from qt-creator/qt-creator
Editors/Help: Open navigation history menu on right-click
Change-Id: I216dde672d84485511c3ac277eb5ab091095d4e1 Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
@@ -39,6 +39,24 @@ enum {
|
|||||||
|
|
||||||
namespace Core {
|
namespace Core {
|
||||||
|
|
||||||
|
class ButtonWithMenu : public QToolButton
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
ButtonWithMenu(QWidget *parent = nullptr)
|
||||||
|
: QToolButton(parent)
|
||||||
|
{}
|
||||||
|
|
||||||
|
protected:
|
||||||
|
void mousePressEvent(QMouseEvent *e) override
|
||||||
|
{
|
||||||
|
if (e->button() == Qt::RightButton) {
|
||||||
|
showMenu();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
QToolButton::mousePressEvent(e);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
struct EditorToolBarPrivate
|
struct EditorToolBarPrivate
|
||||||
{
|
{
|
||||||
explicit EditorToolBarPrivate(QWidget *parent, EditorToolBar *q);
|
explicit EditorToolBarPrivate(QWidget *parent, EditorToolBar *q);
|
||||||
@@ -51,8 +69,8 @@ struct EditorToolBarPrivate
|
|||||||
EditorToolBar::MenuProvider m_menuProvider;
|
EditorToolBar::MenuProvider m_menuProvider;
|
||||||
QAction *m_goBackAction;
|
QAction *m_goBackAction;
|
||||||
QAction *m_goForwardAction;
|
QAction *m_goForwardAction;
|
||||||
QToolButton *m_backButton;
|
ButtonWithMenu *m_backButton;
|
||||||
QToolButton *m_forwardButton;
|
ButtonWithMenu *m_forwardButton;
|
||||||
QToolButton *m_splitButton;
|
QToolButton *m_splitButton;
|
||||||
QAction *m_horizontalSplitAction;
|
QAction *m_horizontalSplitAction;
|
||||||
QAction *m_verticalSplitAction;
|
QAction *m_verticalSplitAction;
|
||||||
@@ -68,27 +86,27 @@ struct EditorToolBarPrivate
|
|||||||
bool m_isStandalone;
|
bool m_isStandalone;
|
||||||
};
|
};
|
||||||
|
|
||||||
EditorToolBarPrivate::EditorToolBarPrivate(QWidget *parent, EditorToolBar *q) :
|
EditorToolBarPrivate::EditorToolBarPrivate(QWidget *parent, EditorToolBar *q)
|
||||||
m_editorList(new QComboBox(q)),
|
: m_editorList(new QComboBox(q))
|
||||||
m_closeEditorButton(new QToolButton(q)),
|
, m_closeEditorButton(new QToolButton(q))
|
||||||
m_lockButton(new QToolButton(q)),
|
, m_lockButton(new QToolButton(q))
|
||||||
m_dragHandle(new QToolButton(q)),
|
, m_dragHandle(new QToolButton(q))
|
||||||
m_dragHandleMenu(nullptr),
|
, m_dragHandleMenu(nullptr)
|
||||||
m_goBackAction(new QAction(Utils::Icons::PREV_TOOLBAR.icon(), Tr::tr("Go Back"), parent)),
|
, m_goBackAction(new QAction(Utils::Icons::PREV_TOOLBAR.icon(), Tr::tr("Go Back"), parent))
|
||||||
m_goForwardAction(new QAction(Utils::Icons::NEXT_TOOLBAR.icon(), Tr::tr("Go Forward"), parent)),
|
, m_goForwardAction(new QAction(Utils::Icons::NEXT_TOOLBAR.icon(), Tr::tr("Go Forward"), parent))
|
||||||
m_backButton(new QToolButton(q)),
|
, m_backButton(new ButtonWithMenu(q))
|
||||||
m_forwardButton(new QToolButton(q)),
|
, m_forwardButton(new ButtonWithMenu(q))
|
||||||
m_splitButton(new QToolButton(q)),
|
, m_splitButton(new QToolButton(q))
|
||||||
m_horizontalSplitAction(new QAction(Utils::Icons::SPLIT_HORIZONTAL.icon(),
|
, m_horizontalSplitAction(
|
||||||
Tr::tr("Split"), parent)),
|
new QAction(Utils::Icons::SPLIT_HORIZONTAL.icon(), Tr::tr("Split"), parent))
|
||||||
m_verticalSplitAction(new QAction(Utils::Icons::SPLIT_VERTICAL.icon(),
|
, m_verticalSplitAction(
|
||||||
Tr::tr("Split Side by Side"), parent)),
|
new QAction(Utils::Icons::SPLIT_VERTICAL.icon(), Tr::tr("Split Side by Side"), parent))
|
||||||
m_splitNewWindowAction(new QAction(Tr::tr("Open in New Window"), parent)),
|
, m_splitNewWindowAction(new QAction(Tr::tr("Open in New Window"), parent))
|
||||||
m_closeSplitButton(new QToolButton(q)),
|
, m_closeSplitButton(new QToolButton(q))
|
||||||
m_activeToolBar(nullptr),
|
, m_activeToolBar(nullptr)
|
||||||
m_toolBarPlaceholder(new QWidget(q)),
|
, m_toolBarPlaceholder(new QWidget(q))
|
||||||
m_defaultToolBar(new QWidget(q)),
|
, m_defaultToolBar(new QWidget(q))
|
||||||
m_isStandalone(false)
|
, m_isStandalone(false)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -52,6 +52,24 @@ static const char kModeSideBarSettingsKey[] = "Help/ModeSideBar";
|
|||||||
namespace Help {
|
namespace Help {
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
|
|
||||||
|
class ButtonWithMenu : public QToolButton
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
ButtonWithMenu(QWidget *parent = nullptr)
|
||||||
|
: QToolButton(parent)
|
||||||
|
{}
|
||||||
|
|
||||||
|
protected:
|
||||||
|
void mousePressEvent(QMouseEvent *e) override
|
||||||
|
{
|
||||||
|
if (e->button() == Qt::RightButton) {
|
||||||
|
showMenu();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
QToolButton::mousePressEvent(e);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
OpenPagesModel::OpenPagesModel(HelpWidget *parent)
|
OpenPagesModel::OpenPagesModel(HelpWidget *parent)
|
||||||
: m_parent(parent)
|
: m_parent(parent)
|
||||||
{}
|
{}
|
||||||
@@ -282,7 +300,9 @@ HelpWidget::HelpWidget(const Core::Context &context, WidgetStyle style, QWidget
|
|||||||
m_backAction->setMenu(m_backMenu);
|
m_backAction->setMenu(m_backMenu);
|
||||||
cmd = Core::ActionManager::registerAction(m_backAction, Constants::HELP_PREVIOUS, context);
|
cmd = Core::ActionManager::registerAction(m_backAction, Constants::HELP_PREVIOUS, context);
|
||||||
cmd->setDefaultKeySequence(QKeySequence::Back);
|
cmd->setDefaultKeySequence(QKeySequence::Back);
|
||||||
button = Core::Command::toolButtonWithAppendedShortcut(m_backAction, cmd);
|
button = new ButtonWithMenu;
|
||||||
|
button->setDefaultAction(m_backAction);
|
||||||
|
cmd->augmentActionWithShortcutToolTip(m_backAction);
|
||||||
button->setPopupMode(QToolButton::DelayedPopup);
|
button->setPopupMode(QToolButton::DelayedPopup);
|
||||||
layout->addWidget(button);
|
layout->addWidget(button);
|
||||||
|
|
||||||
@@ -293,7 +313,9 @@ HelpWidget::HelpWidget(const Core::Context &context, WidgetStyle style, QWidget
|
|||||||
m_forwardAction->setMenu(m_forwardMenu);
|
m_forwardAction->setMenu(m_forwardMenu);
|
||||||
cmd = Core::ActionManager::registerAction(m_forwardAction, Constants::HELP_NEXT, context);
|
cmd = Core::ActionManager::registerAction(m_forwardAction, Constants::HELP_NEXT, context);
|
||||||
cmd->setDefaultKeySequence(QKeySequence::Forward);
|
cmd->setDefaultKeySequence(QKeySequence::Forward);
|
||||||
button = Core::Command::toolButtonWithAppendedShortcut(m_forwardAction, cmd);
|
button = new ButtonWithMenu;
|
||||||
|
button->setDefaultAction(m_forwardAction);
|
||||||
|
cmd->augmentActionWithShortcutToolTip(m_forwardAction);
|
||||||
button->setPopupMode(QToolButton::DelayedPopup);
|
button->setPopupMode(QToolButton::DelayedPopup);
|
||||||
layout->addWidget(button);
|
layout->addWidget(button);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user