mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-08-11 09:13:57 -04:00
Fix multiple buttons being highlighted when a button box has focus
This commit is contained in:
parent
d4c4403a1f
commit
e095f5d0cf
@ -512,6 +512,8 @@ class MetadataSingleDialogBase(ResizableDialog):
|
|||||||
' [Alt+Left]')%prev
|
' [Alt+Left]')%prev
|
||||||
self.prev_button.setToolTip(tip)
|
self.prev_button.setToolTip(tip)
|
||||||
self.prev_button.setEnabled(prev is not None)
|
self.prev_button.setEnabled(prev is not None)
|
||||||
|
self.button_box.button(self.button_box.Ok).setDefault(True)
|
||||||
|
self.button_box.button(self.button_box.Ok).setFocus(Qt.OtherFocusReason)
|
||||||
self(self.db.id(self.row_list[self.current_row]))
|
self(self.db.id(self.row_list[self.current_row]))
|
||||||
|
|
||||||
def break_cycles(self):
|
def break_cycles(self):
|
||||||
@ -980,7 +982,7 @@ def edit_metadata(db, row_list, current_row, parent=None, view_slot=None,
|
|||||||
return d.changed, d.rows_to_refresh
|
return d.changed, d.rows_to_refresh
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
from PyQt4.Qt import QApplication
|
from calibre.gui2 import Application as QApplication
|
||||||
app = QApplication([])
|
app = QApplication([])
|
||||||
from calibre.library import db as db_
|
from calibre.library import db as db_
|
||||||
db = db_()
|
db = db_()
|
||||||
|
@ -211,6 +211,7 @@ class Preferences(QMainWindow):
|
|||||||
self.wizard_button.clicked.connect(self.run_wizard,
|
self.wizard_button.clicked.connect(self.run_wizard,
|
||||||
type=Qt.QueuedConnection)
|
type=Qt.QueuedConnection)
|
||||||
self.cw.layout().addWidget(self.bb)
|
self.cw.layout().addWidget(self.bb)
|
||||||
|
self.bb.button(self.bb.Close).setDefault(True)
|
||||||
self.bb.rejected.connect(self.close, type=Qt.QueuedConnection)
|
self.bb.rejected.connect(self.close, type=Qt.QueuedConnection)
|
||||||
self.setCentralWidget(self.cw)
|
self.setCentralWidget(self.cw)
|
||||||
self.browser = Browser(self)
|
self.browser = Browser(self)
|
||||||
@ -380,8 +381,8 @@ class Preferences(QMainWindow):
|
|||||||
return QMainWindow.closeEvent(self, *args)
|
return QMainWindow.closeEvent(self, *args)
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
from PyQt4.Qt import QApplication
|
from calibre.gui2 import Application
|
||||||
app = QApplication([])
|
app = Application([])
|
||||||
app
|
app
|
||||||
gui = init_gui()
|
gui = init_gui()
|
||||||
|
|
||||||
|
@ -122,10 +122,10 @@ class ProceedQuestion(QDialog):
|
|||||||
self.det_msg.setVisible(False)
|
self.det_msg.setVisible(False)
|
||||||
self.det_msg_toggle.setVisible(bool(question.det_msg))
|
self.det_msg_toggle.setVisible(bool(question.det_msg))
|
||||||
self.det_msg_toggle.setText(self.show_det_msg)
|
self.det_msg_toggle.setText(self.show_det_msg)
|
||||||
self.bb.button(self.bb.Yes).setDefault(True)
|
|
||||||
self.do_resize()
|
self.do_resize()
|
||||||
self.bb.button(self.bb.Yes).setFocus(Qt.OtherFocusReason)
|
|
||||||
self.show()
|
self.show()
|
||||||
|
self.bb.button(self.bb.Yes).setDefault(True)
|
||||||
|
self.bb.button(self.bb.Yes).setFocus(Qt.OtherFocusReason)
|
||||||
|
|
||||||
def __call__(self, callback, payload, html_log, log_viewer_title, title,
|
def __call__(self, callback, payload, html_log, log_viewer_title, title,
|
||||||
msg, det_msg='', show_copy_button=False, cancel_callback=None,
|
msg, det_msg='', show_copy_button=False, cancel_callback=None,
|
||||||
|
@ -6449,7 +6449,19 @@ void Style::drawControl(ControlElement element, const QStyleOption *option, QPai
|
|||||||
// For OO.o 3.2 need to fill widget background!
|
// For OO.o 3.2 need to fill widget background!
|
||||||
if(isOOWidget(widget))
|
if(isOOWidget(widget))
|
||||||
painter->fillRect(r, palette.brush(QPalette::Window));
|
painter->fillRect(r, palette.brush(QPalette::Window));
|
||||||
drawControl(CE_PushButtonBevel, btn, painter, widget);
|
|
||||||
|
// Changed by Kovid: Buttons in a ButtonBox have a default
|
||||||
|
// which is highlighted with a glow. If another button in the
|
||||||
|
// button box has input focus that will also be highlighted
|
||||||
|
// with a glow, resulting in two highlighted buttons. So nuke
|
||||||
|
// the has focus indicator. Interestingly, changing focus with
|
||||||
|
// the tab key still causes the focused button (and only the
|
||||||
|
// focussed button) to be highlighted. I dont really understand
|
||||||
|
// this, but whatever.
|
||||||
|
QStyleOptionButton foc_opt(*btn);
|
||||||
|
if (widget && widget->parent() && widget->parent()->inherits("QDialogButtonBox"))
|
||||||
|
foc_opt.state &= ~State_HasFocus;
|
||||||
|
drawControl(CE_PushButtonBevel, &foc_opt, painter, widget);
|
||||||
|
|
||||||
QStyleOptionButton subopt(*btn);
|
QStyleOptionButton subopt(*btn);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user