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 {
|
||||
|
||||
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
|
||||
{
|
||||
explicit EditorToolBarPrivate(QWidget *parent, EditorToolBar *q);
|
||||
@@ -51,8 +69,8 @@ struct EditorToolBarPrivate
|
||||
EditorToolBar::MenuProvider m_menuProvider;
|
||||
QAction *m_goBackAction;
|
||||
QAction *m_goForwardAction;
|
||||
QToolButton *m_backButton;
|
||||
QToolButton *m_forwardButton;
|
||||
ButtonWithMenu *m_backButton;
|
||||
ButtonWithMenu *m_forwardButton;
|
||||
QToolButton *m_splitButton;
|
||||
QAction *m_horizontalSplitAction;
|
||||
QAction *m_verticalSplitAction;
|
||||
@@ -68,27 +86,27 @@ struct EditorToolBarPrivate
|
||||
bool m_isStandalone;
|
||||
};
|
||||
|
||||
EditorToolBarPrivate::EditorToolBarPrivate(QWidget *parent, EditorToolBar *q) :
|
||||
m_editorList(new QComboBox(q)),
|
||||
m_closeEditorButton(new QToolButton(q)),
|
||||
m_lockButton(new QToolButton(q)),
|
||||
m_dragHandle(new QToolButton(q)),
|
||||
m_dragHandleMenu(nullptr),
|
||||
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_backButton(new QToolButton(q)),
|
||||
m_forwardButton(new QToolButton(q)),
|
||||
m_splitButton(new QToolButton(q)),
|
||||
m_horizontalSplitAction(new QAction(Utils::Icons::SPLIT_HORIZONTAL.icon(),
|
||||
Tr::tr("Split"), parent)),
|
||||
m_verticalSplitAction(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_closeSplitButton(new QToolButton(q)),
|
||||
m_activeToolBar(nullptr),
|
||||
m_toolBarPlaceholder(new QWidget(q)),
|
||||
m_defaultToolBar(new QWidget(q)),
|
||||
m_isStandalone(false)
|
||||
EditorToolBarPrivate::EditorToolBarPrivate(QWidget *parent, EditorToolBar *q)
|
||||
: m_editorList(new QComboBox(q))
|
||||
, m_closeEditorButton(new QToolButton(q))
|
||||
, m_lockButton(new QToolButton(q))
|
||||
, m_dragHandle(new QToolButton(q))
|
||||
, m_dragHandleMenu(nullptr)
|
||||
, 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_backButton(new ButtonWithMenu(q))
|
||||
, m_forwardButton(new ButtonWithMenu(q))
|
||||
, m_splitButton(new QToolButton(q))
|
||||
, m_horizontalSplitAction(
|
||||
new QAction(Utils::Icons::SPLIT_HORIZONTAL.icon(), Tr::tr("Split"), parent))
|
||||
, m_verticalSplitAction(
|
||||
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_closeSplitButton(new QToolButton(q))
|
||||
, m_activeToolBar(nullptr)
|
||||
, m_toolBarPlaceholder(new QWidget(q))
|
||||
, m_defaultToolBar(new QWidget(q))
|
||||
, m_isStandalone(false)
|
||||
{
|
||||
}
|
||||
|
||||
|
@@ -52,6 +52,24 @@ static const char kModeSideBarSettingsKey[] = "Help/ModeSideBar";
|
||||
namespace Help {
|
||||
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)
|
||||
: m_parent(parent)
|
||||
{}
|
||||
@@ -282,7 +300,9 @@ HelpWidget::HelpWidget(const Core::Context &context, WidgetStyle style, QWidget
|
||||
m_backAction->setMenu(m_backMenu);
|
||||
cmd = Core::ActionManager::registerAction(m_backAction, Constants::HELP_PREVIOUS, context);
|
||||
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);
|
||||
layout->addWidget(button);
|
||||
|
||||
@@ -293,7 +313,9 @@ HelpWidget::HelpWidget(const Core::Context &context, WidgetStyle style, QWidget
|
||||
m_forwardAction->setMenu(m_forwardMenu);
|
||||
cmd = Core::ActionManager::registerAction(m_forwardAction, Constants::HELP_NEXT, context);
|
||||
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);
|
||||
layout->addWidget(button);
|
||||
|
||||
|
Reference in New Issue
Block a user