mirror of
https://invent.kde.org/network/falkon.git
synced 2024-12-20 10:46:35 +01:00
[Menus] Menus are not closed when opening links with middle mouse button
It is the same behaviour as in Konqueror Closes #1165
This commit is contained in:
parent
0b8b969535
commit
28091f4957
@ -1,5 +1,7 @@
|
|||||||
Version 1.7.0
|
Version 1.7.0
|
||||||
* development version
|
* development version
|
||||||
|
* completely rewritten bookmarks (including multi-level folders support)
|
||||||
|
* menus are not closed when opening links with middle mouse button
|
||||||
* added support for window.onload event
|
* added support for window.onload event
|
||||||
* added support for external.AddSearchProvider js function
|
* added support for external.AddSearchProvider js function
|
||||||
|
|
||||||
|
@ -123,8 +123,10 @@ NavigationBar::NavigationBar(QupZilla* mainClass)
|
|||||||
setButtonIconSize(m_buttonAddTab);
|
setButtonIconSize(m_buttonAddTab);
|
||||||
|
|
||||||
m_menuBack = new Menu(this);
|
m_menuBack = new Menu(this);
|
||||||
|
m_menuBack->setCloseOnMiddleClick(true);
|
||||||
m_buttonBack->setMenu(m_menuBack);
|
m_buttonBack->setMenu(m_menuBack);
|
||||||
m_menuForward = new Menu(this);
|
m_menuForward = new Menu(this);
|
||||||
|
m_menuForward->setCloseOnMiddleClick(true);
|
||||||
m_buttonNext->setMenu(m_menuForward);
|
m_buttonNext->setMenu(m_menuForward);
|
||||||
|
|
||||||
#ifndef Q_OS_MAC
|
#ifndef Q_OS_MAC
|
||||||
|
@ -355,11 +355,6 @@ void MacMenuReceiver::bookmarkPage()
|
|||||||
callSlot("bookmarkPage");
|
callSlot("bookmarkPage");
|
||||||
}
|
}
|
||||||
|
|
||||||
void MacMenuReceiver::loadFolderBookmarks(Menu* menu)
|
|
||||||
{
|
|
||||||
callSlot("loadFolderBookmarks", false, Q_ARG(Menu*, menu));
|
|
||||||
}
|
|
||||||
|
|
||||||
void MacMenuReceiver::closeTab()
|
void MacMenuReceiver::closeTab()
|
||||||
{
|
{
|
||||||
callSlot("closeTab");
|
callSlot("closeTab");
|
||||||
|
@ -137,7 +137,6 @@ private slots:
|
|||||||
void loadActionUrl(QObject* obj = 0);
|
void loadActionUrl(QObject* obj = 0);
|
||||||
void loadActionUrlInNewTab(QObject* obj = 0);
|
void loadActionUrlInNewTab(QObject* obj = 0);
|
||||||
void loadActionUrlInNewNotSelectedTab(QObject* obj = 0);
|
void loadActionUrlInNewNotSelectedTab(QObject* obj = 0);
|
||||||
void loadFolderBookmarks(Menu* menu);
|
|
||||||
|
|
||||||
void closeTab();
|
void closeTab();
|
||||||
void restoreClosedTab(QObject* obj = 0);
|
void restoreClosedTab(QObject* obj = 0);
|
||||||
|
@ -32,6 +32,7 @@ PopupWebView::PopupWebView(QWidget* parent)
|
|||||||
, m_page(0)
|
, m_page(0)
|
||||||
, m_menu(new Menu(this))
|
, m_menu(new Menu(this))
|
||||||
{
|
{
|
||||||
|
m_menu->setCloseOnMiddleClick(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PopupWebView::setWebPage(PopupWebPage* page)
|
void PopupWebView::setWebPage(PopupWebPage* page)
|
||||||
|
@ -22,14 +22,26 @@
|
|||||||
|
|
||||||
Menu::Menu(QWidget* parent)
|
Menu::Menu(QWidget* parent)
|
||||||
: QMenu(parent)
|
: QMenu(parent)
|
||||||
|
, m_closeOnMiddleClick(false)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
Menu::Menu(const QString &title, QWidget* parent)
|
Menu::Menu(const QString &title, QWidget* parent)
|
||||||
: QMenu(title, parent)
|
: QMenu(title, parent)
|
||||||
|
, m_closeOnMiddleClick(false)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool Menu::closeOnMiddleClick() const
|
||||||
|
{
|
||||||
|
return m_closeOnMiddleClick;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Menu::setCloseOnMiddleClick(bool close)
|
||||||
|
{
|
||||||
|
m_closeOnMiddleClick = close;
|
||||||
|
}
|
||||||
|
|
||||||
void Menu::mouseReleaseEvent(QMouseEvent* e)
|
void Menu::mouseReleaseEvent(QMouseEvent* e)
|
||||||
{
|
{
|
||||||
QAction* qact = activeAction();
|
QAction* qact = activeAction();
|
||||||
@ -59,7 +71,9 @@ void Menu::mouseReleaseEvent(QMouseEvent* e)
|
|||||||
e->accept();
|
e->accept();
|
||||||
}
|
}
|
||||||
else if (e->button() == Qt::MiddleButton || (e->button() == Qt::LeftButton && e->modifiers() == Qt::ControlModifier)) {
|
else if (e->button() == Qt::MiddleButton || (e->button() == Qt::LeftButton && e->modifiers() == Qt::ControlModifier)) {
|
||||||
|
if ((e->button() == Qt::MiddleButton && m_closeOnMiddleClick) || e->button() != Qt::MiddleButton) {
|
||||||
closeAllMenus();
|
closeAllMenus();
|
||||||
|
}
|
||||||
act->emitCtrlTriggered();
|
act->emitCtrlTriggered();
|
||||||
e->accept();
|
e->accept();
|
||||||
}
|
}
|
||||||
|
@ -32,6 +32,10 @@ public:
|
|||||||
explicit Menu(QWidget* parent = 0);
|
explicit Menu(QWidget* parent = 0);
|
||||||
explicit Menu(const QString &title, QWidget* parent = 0);
|
explicit Menu(const QString &title, QWidget* parent = 0);
|
||||||
|
|
||||||
|
// Default is false, menu will NOT be closed on middle click
|
||||||
|
bool closeOnMiddleClick() const;
|
||||||
|
void setCloseOnMiddleClick(bool close);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void menuMiddleClicked(Menu*);
|
void menuMiddleClicked(Menu*);
|
||||||
|
|
||||||
@ -42,6 +46,8 @@ private:
|
|||||||
void keyPressEvent(QKeyEvent* e);
|
void keyPressEvent(QKeyEvent* e);
|
||||||
|
|
||||||
void closeAllMenus();
|
void closeAllMenus();
|
||||||
|
|
||||||
|
bool m_closeOnMiddleClick;
|
||||||
};
|
};
|
||||||
|
|
||||||
class QT_QUPZILLA_EXPORT Action : public QAction
|
class QT_QUPZILLA_EXPORT Action : public QAction
|
||||||
|
@ -44,6 +44,8 @@ TabbedWebView::TabbedWebView(QupZilla* mainClass, WebTab* webTab)
|
|||||||
, m_menu(new Menu(this))
|
, m_menu(new Menu(this))
|
||||||
, m_mouseTrack(false)
|
, m_mouseTrack(false)
|
||||||
{
|
{
|
||||||
|
m_menu->setCloseOnMiddleClick(true);
|
||||||
|
|
||||||
connect(this, SIGNAL(loadStarted()), this, SLOT(slotLoadStarted()));
|
connect(this, SIGNAL(loadStarted()), this, SLOT(slotLoadStarted()));
|
||||||
connect(this, SIGNAL(loadProgress(int)), this, SLOT(loadProgress(int)));
|
connect(this, SIGNAL(loadProgress(int)), this, SLOT(loadProgress(int)));
|
||||||
connect(this, SIGNAL(loadFinished(bool)), this, SLOT(slotLoadFinished()));
|
connect(this, SIGNAL(loadFinished(bool)), this, SLOT(slotLoadFinished()));
|
||||||
|
@ -930,6 +930,7 @@ void WebView::createPageContextMenu(QMenu* menu, const QPoint &pos)
|
|||||||
if (frameAtPos && page()->mainFrame() != frameAtPos) {
|
if (frameAtPos && page()->mainFrame() != frameAtPos) {
|
||||||
m_clickedFrame = frameAtPos;
|
m_clickedFrame = frameAtPos;
|
||||||
Menu* frameMenu = new Menu(tr("This frame"));
|
Menu* frameMenu = new Menu(tr("This frame"));
|
||||||
|
frameMenu->setCloseOnMiddleClick(true);
|
||||||
frameMenu->addAction(tr("Show &only this frame"), this, SLOT(loadClickedFrame()));
|
frameMenu->addAction(tr("Show &only this frame"), this, SLOT(loadClickedFrame()));
|
||||||
Action* act = new Action(QIcon::fromTheme("tab-new", QIcon(":/icons/menu/tab-new.png")), tr("Show this frame in new &tab"));
|
Action* act = new Action(QIcon::fromTheme("tab-new", QIcon(":/icons/menu/tab-new.png")), tr("Show this frame in new &tab"));
|
||||||
connect(act, SIGNAL(triggered()), this, SLOT(loadClickedFrameInNewTab()));
|
connect(act, SIGNAL(triggered()), this, SLOT(loadClickedFrameInNewTab()));
|
||||||
@ -1088,6 +1089,7 @@ void WebView::createSelectedTextContextMenu(QMenu* menu, const QWebHitTestResult
|
|||||||
|
|
||||||
// Search with ...
|
// Search with ...
|
||||||
Menu* swMenu = new Menu(tr("Search with..."), menu);
|
Menu* swMenu = new Menu(tr("Search with..."), menu);
|
||||||
|
swMenu->setCloseOnMiddleClick(true);
|
||||||
SearchEnginesManager* searchManager = mApp->searchEnginesManager();
|
SearchEnginesManager* searchManager = mApp->searchEnginesManager();
|
||||||
foreach (const SearchEngine &en, searchManager->allEngines()) {
|
foreach (const SearchEngine &en, searchManager->allEngines()) {
|
||||||
Action* act = new Action(en.icon, en.name);
|
Action* act = new Action(en.icon, en.name);
|
||||||
|
Loading…
Reference in New Issue
Block a user