Remove workaround for qtoolbar bug on linux in Qt < 5.4

The linux calibre binary builds now use Qt 5.4.1
This commit is contained in:
Kovid Goyal 2015-03-23 17:40:33 +05:30
parent 0ca0f22446
commit a005cc5f56
4 changed files with 3 additions and 35 deletions

View File

@ -1289,15 +1289,3 @@ def event_type_name(ev_or_etype):
if num == etype: if num == etype:
return name return name
return 'UnknownEventType' return 'UnknownEventType'
if islinux or isbsd:
def workaround_broken_under_mouse(ch):
import sip
from PyQt5.Qt import QCursor, QToolButton
# See https://bugreports.qt-project.org/browse/QTBUG-40233
if isinstance(ch, QToolButton) and not sip.isdeleted(ch):
ch.setAttribute(Qt.WA_UnderMouse, ch.rect().contains(ch.mapFromGlobal(QCursor.pos())))
ch.update()
else:
workaround_broken_under_mouse = None

View File

@ -7,15 +7,13 @@ __license__ = 'GPL v3'
__copyright__ = '2011, Kovid Goyal <kovid@kovidgoyal.net>' __copyright__ = '2011, Kovid Goyal <kovid@kovidgoyal.net>'
__docformat__ = 'restructuredtext en' __docformat__ = 'restructuredtext en'
from functools import partial
import sip import sip
from PyQt5.Qt import ( from PyQt5.Qt import (
Qt, QAction, QMenu, QObject, QToolBar, QToolButton, QSize, pyqtSignal, QTimer) Qt, QAction, QMenu, QObject, QToolBar, QToolButton, QSize, pyqtSignal, QTimer)
from calibre.constants import isosx from calibre.constants import isosx
from calibre.gui2.throbber import create_donate_widget from calibre.gui2.throbber import create_donate_widget
from calibre.gui2 import gprefs, workaround_broken_under_mouse, native_menubar_defaults from calibre.gui2 import gprefs, native_menubar_defaults
class ToolBar(QToolBar): # {{{ class ToolBar(QToolBar): # {{{
@ -110,8 +108,6 @@ class ToolBar(QToolBar): # {{{
ch.setAutoRaise(True) ch.setAutoRaise(True)
m = ac.menu() m = ac.menu()
if m is not None: if m is not None:
if workaround_broken_under_mouse is not None:
m.aboutToHide.connect(partial(workaround_broken_under_mouse, ch))
if menu_mode is not None: if menu_mode is not None:
ch.setPopupMode(menu_mode) ch.setPopupMode(menu_mode)
return ch return ch

View File

@ -19,7 +19,7 @@ from calibre.ebooks.chardet import replace_encoding_declarations
from calibre.gui2.tweak_book import ( from calibre.gui2.tweak_book import (
actions, current_container, tprefs, dictionaries, editor_toolbar_actions, actions, current_container, tprefs, dictionaries, editor_toolbar_actions,
editor_name, editors, update_mark_text_action) editor_name, editors, update_mark_text_action)
from calibre.gui2 import error_dialog, open_url, workaround_broken_under_mouse from calibre.gui2 import error_dialog, open_url
from calibre.gui2.tweak_book.editor import SPELL_PROPERTY, LINK_PROPERTY, TAG_NAME_PROPERTY, CSS_PROPERTY from calibre.gui2.tweak_book.editor import SPELL_PROPERTY, LINK_PROPERTY, TAG_NAME_PROPERTY, CSS_PROPERTY
from calibre.gui2.tweak_book.editor.help import help_url from calibre.gui2.tweak_book.editor.help import help_url
from calibre.gui2.tweak_book.editor.text import TextEdit from calibre.gui2.tweak_book.editor.text import TextEdit
@ -340,19 +340,11 @@ class Editor(QMainWindow):
w.setContextMenuPolicy(Qt.CustomContextMenu) w.setContextMenuPolicy(Qt.CustomContextMenu)
w.customContextMenuRequested.connect(w.showMenu) w.customContextMenuRequested.connect(w.showMenu)
self._build_insert_tag_button_menu() self._build_insert_tag_button_menu()
if workaround_broken_under_mouse is not None:
try:
self.insert_tag_menu.aboutToHide.disconnect()
except TypeError:
pass
self.insert_tag_menu.aboutToHide.connect(partial(workaround_broken_under_mouse, w))
elif name == 'change-paragraph': elif name == 'change-paragraph':
m = ac.m = QMenu() m = ac.m = QMenu()
ac.setMenu(m) ac.setMenu(m)
ch = bar.widgetForAction(ac) ch = bar.widgetForAction(ac)
ch.setPopupMode(QToolButton.InstantPopup) ch.setPopupMode(QToolButton.InstantPopup)
if workaround_broken_under_mouse is not None:
m.aboutToHide.connect(partial(workaround_broken_under_mouse, ch))
for name in tuple('h%d' % d for d in range(1, 7)) + ('p',): for name in tuple('h%d' % d for d in range(1, 7)) + ('p',):
m.addAction(actions['rename-block-tag-%s' % name]) m.addAction(actions['rename-block-tag-%s' % name])

View File

@ -7,7 +7,6 @@ __license__ = 'GPL v3'
__copyright__ = '2014, Kovid Goyal <kovid at kovidgoyal.net>' __copyright__ = '2014, Kovid Goyal <kovid at kovidgoyal.net>'
import textwrap import textwrap
from functools import partial
from PyQt5.Qt import ( from PyQt5.Qt import (
QIcon, QWidget, Qt, QGridLayout, QScrollBar, QToolBar, QAction, QIcon, QWidget, Qt, QGridLayout, QScrollBar, QToolBar, QAction,
@ -15,7 +14,7 @@ from PyQt5.Qt import (
QRegExpValidator, QRegExp, QPalette, QColor, QBrush, QPainter, QRegExpValidator, QRegExp, QPalette, QColor, QBrush, QPainter,
QDockWidget, QSize, QWebView, QLabel, QVBoxLayout) QDockWidget, QSize, QWebView, QLabel, QVBoxLayout)
from calibre.gui2 import rating_font, workaround_broken_under_mouse from calibre.gui2 import rating_font
from calibre.gui2.main_window import MainWindow from calibre.gui2.main_window import MainWindow
from calibre.gui2.search_box import SearchBox2 from calibre.gui2.search_box import SearchBox2
from calibre.gui2.viewer.documentview import DocumentView from calibre.gui2.viewer.documentview import DocumentView
@ -336,13 +335,6 @@ class Main(MainWindow):
self.resize(653, 746) self.resize(653, 746)
if workaround_broken_under_mouse is not None:
for bar in (self.tool_bar, self.tool_bar2):
for ac in bar.actions():
m = ac.menu()
if m is not None:
m.aboutToHide.connect(partial(workaround_broken_under_mouse, bar.widgetForAction(ac)))
def resizeEvent(self, ev): def resizeEvent(self, ev):
if self.metadata.isVisible(): if self.metadata.isVisible():
self.metadata.update_layout() self.metadata.update_layout()