mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Allow right clicking on the layout buttons in the bottom right corner to configure the corresponding area of the user interface
Fixes #1690454 [[Enhancement] Make main window more customizable by right clicking](https://bugs.launchpad.net/calibre/+bug/1690454)
This commit is contained in:
parent
b76a70e528
commit
4b89e0e6a1
@ -19,7 +19,7 @@
|
||||
<property name="currentIndex">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<widget class="QWidget" name="tab">
|
||||
<widget class="QWidget" name="main_interface_tab">
|
||||
<attribute name="icon">
|
||||
<iconset resource="../../../../resources/images.qrc">
|
||||
<normaloff>:/images/lt.png</normaloff>:/images/lt.png</iconset>
|
||||
@ -662,7 +662,7 @@ A value of zero means calculate automatically.</string>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="tab_4">
|
||||
<widget class="QWidget" name="book_details_tab">
|
||||
<attribute name="icon">
|
||||
<iconset resource="../../../../resources/images.qrc">
|
||||
<normaloff>:/images/book.png</normaloff>:/images/book.png</iconset>
|
||||
@ -795,7 +795,7 @@ A value of zero means calculate automatically.</string>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="tab_2">
|
||||
<widget class="QWidget" name="tag_browser_tab">
|
||||
<attribute name="icon">
|
||||
<iconset resource="../../../../resources/images.qrc">
|
||||
<normaloff>:/images/tags.png</normaloff>:/images/tags.png</iconset>
|
||||
@ -948,7 +948,7 @@ see the counts by hovering your mouse over any item.</string>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="tab_3">
|
||||
<widget class="QWidget" name="cover_browser_tab">
|
||||
<attribute name="icon">
|
||||
<iconset resource="../../../../resources/images.qrc">
|
||||
<normaloff>:/images/cover_flow.png</normaloff>:/images/cover_flow.png</iconset>
|
||||
|
@ -13,7 +13,7 @@ from PyQt5.Qt import (
|
||||
Qt, QIcon, QFont, QWidget, QScrollArea, QStackedWidget, QVBoxLayout,
|
||||
QLabel, QFrame, QToolBar, QSize, pyqtSignal, QDialogButtonBox,
|
||||
QHBoxLayout, QDialog, QSizePolicy, QPainter, QTextLayout, QPointF,
|
||||
QStatusTipEvent, QApplication)
|
||||
QStatusTipEvent, QApplication, QTabWidget)
|
||||
|
||||
from calibre.constants import __appname__, __version__, islinux
|
||||
from calibre.gui2 import (gprefs, min_available_height, available_width,
|
||||
@ -259,10 +259,19 @@ class Preferences(QDialog):
|
||||
l.addWidget(self.title_bar), l.addWidget(self.stack), l.addWidget(self.bb)
|
||||
|
||||
if initial_plugin is not None:
|
||||
category, name = initial_plugin
|
||||
category, name = initial_plugin[:2]
|
||||
plugin = get_plugin(category, name)
|
||||
if plugin is not None:
|
||||
self.show_plugin(plugin)
|
||||
if len(initial_plugin) > 2:
|
||||
w = self.findChild(QWidget, initial_plugin[2])
|
||||
if w is not None:
|
||||
for c in self.showing_widget.children():
|
||||
if isinstance(c, QTabWidget):
|
||||
idx = c.indexOf(w)
|
||||
if idx > -1:
|
||||
c.setCurrentIndex(idx)
|
||||
break
|
||||
else:
|
||||
self.hide_plugin()
|
||||
|
||||
|
@ -959,6 +959,7 @@ class LayoutButton(QToolButton):
|
||||
self.label = text
|
||||
self.setIcon(QIcon(icon))
|
||||
self.setCheckable(True)
|
||||
self.icname = os.path.basename(icon).rpartition('.')[0]
|
||||
|
||||
self.splitter = splitter
|
||||
if splitter is not None:
|
||||
@ -987,6 +988,18 @@ class LayoutButton(QToolButton):
|
||||
else:
|
||||
self.set_state_to_hide()
|
||||
|
||||
def mouseReleaseEvent(self, ev):
|
||||
if ev.button() == Qt.RightButton:
|
||||
tab_name = {'book':'book_details', 'grid':'cover_grid', 'cover_flow':'cover_browser', 'tags':'tag_browser'}.get(self.icname)
|
||||
if tab_name:
|
||||
ev.accept()
|
||||
from calibre.gui2.ui import get_gui
|
||||
gui = get_gui()
|
||||
if gui is not None:
|
||||
gui.iactions['Preferences'].do_config(initial_plugin=('Interface', 'Look & Feel', tab_name+'_tab'), close_after_initial=True)
|
||||
return
|
||||
return QToolButton.mouseReleaseEvent(self, ev)
|
||||
|
||||
|
||||
class Splitter(QSplitter):
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user