mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Make Tag Browser visible by default and freely resizable
This commit is contained in:
parent
ebb5c43abc
commit
5a477915a9
@ -301,8 +301,11 @@
|
|||||||
<widget class="QWidget" name="library">
|
<widget class="QWidget" name="library">
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||||
<item>
|
<item>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
<widget class="QSplitter" name="horizontal_splitter">
|
||||||
<item>
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<widget class="QWidget" name="layoutWidget">
|
||||||
<layout class="QVBoxLayout" name="verticalLayout">
|
<layout class="QVBoxLayout" name="verticalLayout">
|
||||||
<item>
|
<item>
|
||||||
<widget class="TagsView" name="tags_view">
|
<widget class="TagsView" name="tags_view">
|
||||||
@ -363,7 +366,7 @@
|
|||||||
<item>
|
<item>
|
||||||
<widget class="QLabel" name="restriction_label">
|
<widget class="QLabel" name="restriction_label">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>&Restrict display to:</string>
|
<string>&Restrict to:</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="buddy">
|
<property name="buddy">
|
||||||
<cstring>search_restriction</cstring>
|
<cstring>search_restriction</cstring>
|
||||||
@ -386,42 +389,40 @@
|
|||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</widget>
|
||||||
<item>
|
<widget class="BooksView" name="library_view">
|
||||||
<widget class="BooksView" name="library_view">
|
<property name="sizePolicy">
|
||||||
<property name="sizePolicy">
|
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
||||||
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
<horstretch>100</horstretch>
|
||||||
<horstretch>100</horstretch>
|
<verstretch>10</verstretch>
|
||||||
<verstretch>10</verstretch>
|
</sizepolicy>
|
||||||
</sizepolicy>
|
</property>
|
||||||
</property>
|
<property name="acceptDrops">
|
||||||
<property name="acceptDrops">
|
<bool>true</bool>
|
||||||
<bool>true</bool>
|
</property>
|
||||||
</property>
|
<property name="dragEnabled">
|
||||||
<property name="dragEnabled">
|
<bool>true</bool>
|
||||||
<bool>true</bool>
|
</property>
|
||||||
</property>
|
<property name="dragDropOverwriteMode">
|
||||||
<property name="dragDropOverwriteMode">
|
<bool>false</bool>
|
||||||
<bool>false</bool>
|
</property>
|
||||||
</property>
|
<property name="dragDropMode">
|
||||||
<property name="dragDropMode">
|
<enum>QAbstractItemView::DragDrop</enum>
|
||||||
<enum>QAbstractItemView::DragDrop</enum>
|
</property>
|
||||||
</property>
|
<property name="alternatingRowColors">
|
||||||
<property name="alternatingRowColors">
|
<bool>true</bool>
|
||||||
<bool>true</bool>
|
</property>
|
||||||
</property>
|
<property name="selectionBehavior">
|
||||||
<property name="selectionBehavior">
|
<enum>QAbstractItemView::SelectRows</enum>
|
||||||
<enum>QAbstractItemView::SelectRows</enum>
|
</property>
|
||||||
</property>
|
<property name="showGrid">
|
||||||
<property name="showGrid">
|
<bool>false</bool>
|
||||||
<bool>false</bool>
|
</property>
|
||||||
</property>
|
<property name="wordWrap">
|
||||||
<property name="wordWrap">
|
<bool>false</bool>
|
||||||
<bool>false</bool>
|
</property>
|
||||||
</property>
|
</widget>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
|
@ -205,19 +205,6 @@ class CoverFlowButton(QToolButton):
|
|||||||
self.setDisabled(True)
|
self.setDisabled(True)
|
||||||
self.setToolTip(_('<p>Browsing books by their covers is disabled.<br>Import of pictureflow module failed:<br>')+reason)
|
self.setToolTip(_('<p>Browsing books by their covers is disabled.<br>Import of pictureflow module failed:<br>')+reason)
|
||||||
|
|
||||||
class TagViewButton(QToolButton):
|
|
||||||
|
|
||||||
def __init__(self, parent=None):
|
|
||||||
QToolButton.__init__(self, parent)
|
|
||||||
self.setIconSize(QSize(80, 80))
|
|
||||||
self.setIcon(QIcon(I('tags.svg')))
|
|
||||||
self.setToolTip(_('Click to browse books by tags'))
|
|
||||||
self.setSizePolicy(QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Expanding))
|
|
||||||
self.setCursor(Qt.PointingHandCursor)
|
|
||||||
self.setCheckable(True)
|
|
||||||
self.setChecked(False)
|
|
||||||
self.setAutoRaise(True)
|
|
||||||
|
|
||||||
|
|
||||||
class StatusBar(QStatusBar):
|
class StatusBar(QStatusBar):
|
||||||
|
|
||||||
@ -227,9 +214,7 @@ class StatusBar(QStatusBar):
|
|||||||
self.notifier = get_notifier(systray)
|
self.notifier = get_notifier(systray)
|
||||||
self.movie_button = MovieButton(jobs_dialog)
|
self.movie_button = MovieButton(jobs_dialog)
|
||||||
self.cover_flow_button = CoverFlowButton()
|
self.cover_flow_button = CoverFlowButton()
|
||||||
self.tag_view_button = TagViewButton()
|
|
||||||
self.addPermanentWidget(self.cover_flow_button)
|
self.addPermanentWidget(self.cover_flow_button)
|
||||||
self.addPermanentWidget(self.tag_view_button)
|
|
||||||
self.addPermanentWidget(self.movie_button)
|
self.addPermanentWidget(self.movie_button)
|
||||||
self.book_info = BookInfoDisplay(self.clearMessage)
|
self.book_info = BookInfoDisplay(self.clearMessage)
|
||||||
self.book_info.setAcceptDrops(True)
|
self.book_info.setAcceptDrops(True)
|
||||||
|
@ -575,8 +575,6 @@ class Main(MainWindow, Ui_MainWindow, DeviceGUI):
|
|||||||
self.connect(self.tags_view,
|
self.connect(self.tags_view,
|
||||||
SIGNAL('tags_marked(PyQt_PyObject, PyQt_PyObject)'),
|
SIGNAL('tags_marked(PyQt_PyObject, PyQt_PyObject)'),
|
||||||
self.saved_search.clear_to_help)
|
self.saved_search.clear_to_help)
|
||||||
self.connect(self.status_bar.tag_view_button,
|
|
||||||
SIGNAL('toggled(bool)'), self.toggle_tags_view)
|
|
||||||
self.connect(self.search,
|
self.connect(self.search,
|
||||||
SIGNAL('search(PyQt_PyObject, PyQt_PyObject)'),
|
SIGNAL('search(PyQt_PyObject, PyQt_PyObject)'),
|
||||||
self.tags_view.model().reinit)
|
self.tags_view.model().reinit)
|
||||||
@ -674,8 +672,10 @@ class Main(MainWindow, Ui_MainWindow, DeviceGUI):
|
|||||||
if self.cover_flow is not None and dynamic.get('cover_flow_visible', False):
|
if self.cover_flow is not None and dynamic.get('cover_flow_visible', False):
|
||||||
self.status_bar.cover_flow_button.toggle()
|
self.status_bar.cover_flow_button.toggle()
|
||||||
|
|
||||||
if dynamic.get('tag_view_visible', False):
|
tb_state = dynamic.get('tag_browser_state', None)
|
||||||
self.status_bar.tag_view_button.toggle()
|
if tb_state is not None:
|
||||||
|
self.horizontal_splitter.restoreState(tb_state)
|
||||||
|
self.toggle_tags_view(True)
|
||||||
|
|
||||||
self._add_filesystem_book = Dispatcher(self.__add_filesystem_book)
|
self._add_filesystem_book = Dispatcher(self.__add_filesystem_book)
|
||||||
v = self.library_view
|
v = self.library_view
|
||||||
@ -2331,7 +2331,6 @@ class Main(MainWindow, Ui_MainWindow, DeviceGUI):
|
|||||||
self.view_menu.actions()[1].setEnabled(True)
|
self.view_menu.actions()[1].setEnabled(True)
|
||||||
self.action_open_containing_folder.setEnabled(True)
|
self.action_open_containing_folder.setEnabled(True)
|
||||||
self.action_sync.setEnabled(True)
|
self.action_sync.setEnabled(True)
|
||||||
self.status_bar.tag_view_button.setEnabled(True)
|
|
||||||
self.status_bar.cover_flow_button.setEnabled(True)
|
self.status_bar.cover_flow_button.setEnabled(True)
|
||||||
for action in list(self.delete_menu.actions())[1:]:
|
for action in list(self.delete_menu.actions())[1:]:
|
||||||
action.setEnabled(True)
|
action.setEnabled(True)
|
||||||
@ -2342,7 +2341,6 @@ class Main(MainWindow, Ui_MainWindow, DeviceGUI):
|
|||||||
self.view_menu.actions()[1].setEnabled(False)
|
self.view_menu.actions()[1].setEnabled(False)
|
||||||
self.action_open_containing_folder.setEnabled(False)
|
self.action_open_containing_folder.setEnabled(False)
|
||||||
self.action_sync.setEnabled(False)
|
self.action_sync.setEnabled(False)
|
||||||
self.status_bar.tag_view_button.setEnabled(False)
|
|
||||||
self.status_bar.cover_flow_button.setEnabled(False)
|
self.status_bar.cover_flow_button.setEnabled(False)
|
||||||
for action in list(self.delete_menu.actions())[1:]:
|
for action in list(self.delete_menu.actions())[1:]:
|
||||||
action.setEnabled(False)
|
action.setEnabled(False)
|
||||||
@ -2459,8 +2457,9 @@ class Main(MainWindow, Ui_MainWindow, DeviceGUI):
|
|||||||
def write_settings(self):
|
def write_settings(self):
|
||||||
config.set('main_window_geometry', self.saveGeometry())
|
config.set('main_window_geometry', self.saveGeometry())
|
||||||
dynamic.set('sort_history', self.library_view.model().sort_history)
|
dynamic.set('sort_history', self.library_view.model().sort_history)
|
||||||
dynamic.set('tag_view_visible', self.tags_view.isVisible())
|
|
||||||
dynamic.set('cover_flow_visible', self.cover_flow.isVisible())
|
dynamic.set('cover_flow_visible', self.cover_flow.isVisible())
|
||||||
|
dynamic.set('tag_browser_state',
|
||||||
|
str(self.horizontal_splitter.saveState()))
|
||||||
self.library_view.write_settings()
|
self.library_view.write_settings()
|
||||||
if self.device_connected:
|
if self.device_connected:
|
||||||
self.save_device_view_settings()
|
self.save_device_view_settings()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user