mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Add a preference in Preferences->Look & Feel to hide the row numbers in the main book list. Fixes #1643313 [Enhancement: Hide book number (GUI) column](https://bugs.launchpad.net/calibre/+bug/1643313)
This commit is contained in:
parent
3a22851b83
commit
ed2a6fbf7b
@ -30,7 +30,7 @@ except AttributeError:
|
|||||||
|
|
||||||
# Setup gprefs {{{
|
# Setup gprefs {{{
|
||||||
gprefs = JSONConfig('gui')
|
gprefs = JSONConfig('gui')
|
||||||
defs = gprefs.defaults
|
|
||||||
|
|
||||||
native_menubar_defaults = {
|
native_menubar_defaults = {
|
||||||
'action-layout-menubar': (
|
'action-layout-menubar': (
|
||||||
@ -45,6 +45,9 @@ native_menubar_defaults = {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
def create_defs():
|
||||||
|
defs = gprefs.defaults
|
||||||
if isosx:
|
if isosx:
|
||||||
defs['action-layout-menubar'] = native_menubar_defaults['action-layout-menubar']
|
defs['action-layout-menubar'] = native_menubar_defaults['action-layout-menubar']
|
||||||
defs['action-layout-menubar-device'] = native_menubar_defaults['action-layout-menubar-device']
|
defs['action-layout-menubar-device'] = native_menubar_defaults['action-layout-menubar-device']
|
||||||
@ -145,7 +148,11 @@ defs['emblem_size'] = 32
|
|||||||
defs['emblem_position'] = 'left'
|
defs['emblem_position'] = 'left'
|
||||||
defs['metadata_diff_mark_rejected'] = False
|
defs['metadata_diff_mark_rejected'] = False
|
||||||
defs['tag_browser_show_counts'] = True
|
defs['tag_browser_show_counts'] = True
|
||||||
del defs
|
defs['row_numbers_in_book_list'] = True
|
||||||
|
|
||||||
|
|
||||||
|
create_defs()
|
||||||
|
del create_defs
|
||||||
# }}}
|
# }}}
|
||||||
|
|
||||||
UNDEFINED_QDATETIME = QDateTime(UNDEFINED_DATE)
|
UNDEFINED_QDATETIME = QDateTime(UNDEFINED_DATE)
|
||||||
@ -256,7 +263,9 @@ def _config(): # {{{
|
|||||||
c.add_opt
|
c.add_opt
|
||||||
return ConfigProxy(c)
|
return ConfigProxy(c)
|
||||||
|
|
||||||
|
|
||||||
config = _config()
|
config = _config()
|
||||||
|
|
||||||
# }}}
|
# }}}
|
||||||
|
|
||||||
QSettings.setPath(QSettings.IniFormat, QSettings.UserScope, config_dir)
|
QSettings.setPath(QSettings.IniFormat, QSettings.UserScope, config_dir)
|
||||||
@ -300,6 +309,7 @@ def get_screen_dpi():
|
|||||||
d = QApplication.desktop()
|
d = QApplication.desktop()
|
||||||
return (d.logicalDpiX(), d.logicalDpiY())
|
return (d.logicalDpiX(), d.logicalDpiY())
|
||||||
|
|
||||||
|
|
||||||
_is_widescreen = None
|
_is_widescreen = None
|
||||||
|
|
||||||
|
|
||||||
@ -580,6 +590,7 @@ class FileIconProvider(QFileIconProvider):
|
|||||||
return self.icons['default']
|
return self.icons['default']
|
||||||
return QFileIconProvider.icon(self, arg)
|
return QFileIconProvider.icon(self, arg)
|
||||||
|
|
||||||
|
|
||||||
_file_icon_provider = None
|
_file_icon_provider = None
|
||||||
|
|
||||||
|
|
||||||
@ -706,6 +717,7 @@ class FileDialog(QObject):
|
|||||||
return tuple(os.path.abspath(unicode(i)) for i in self.fd.selectedFiles())
|
return tuple(os.path.abspath(unicode(i)) for i in self.fd.selectedFiles())
|
||||||
return tuple(self.selected_files)
|
return tuple(self.selected_files)
|
||||||
|
|
||||||
|
|
||||||
has_windows_file_dialog_helper = False
|
has_windows_file_dialog_helper = False
|
||||||
if iswindows and 'CALIBRE_NO_NATIVE_FILEDIALOGS' not in os.environ:
|
if iswindows and 'CALIBRE_NO_NATIVE_FILEDIALOGS' not in os.environ:
|
||||||
from calibre.gui2.win_file_dialogs import is_ok as has_windows_file_dialog_helper
|
from calibre.gui2.win_file_dialogs import is_ok as has_windows_file_dialog_helper
|
||||||
@ -814,6 +826,7 @@ def decouple(prefix):
|
|||||||
from calibre.gui2.widgets import history
|
from calibre.gui2.widgets import history
|
||||||
history.decouple(prefix)
|
history.decouple(prefix)
|
||||||
|
|
||||||
|
|
||||||
_gui_prefs = gprefs
|
_gui_prefs = gprefs
|
||||||
|
|
||||||
|
|
||||||
@ -1149,6 +1162,7 @@ class Application(QApplication):
|
|||||||
return
|
return
|
||||||
self.shutdown_signal_received.emit()
|
self.shutdown_signal_received.emit()
|
||||||
|
|
||||||
|
|
||||||
_store_app = None
|
_store_app = None
|
||||||
|
|
||||||
|
|
||||||
@ -1188,6 +1202,8 @@ def sanitize_env_vars():
|
|||||||
os.environ[var] = orig
|
os.environ[var] = orig
|
||||||
elif var in os.environ:
|
elif var in os.environ:
|
||||||
del os.environ[var]
|
del os.environ[var]
|
||||||
|
|
||||||
|
|
||||||
SanitizeLibraryPath = sanitize_env_vars # For old plugins
|
SanitizeLibraryPath = sanitize_env_vars # For old plugins
|
||||||
|
|
||||||
|
|
||||||
@ -1223,6 +1239,7 @@ def open_local_file(path):
|
|||||||
url = QUrl.fromLocalFile(path)
|
url = QUrl.fromLocalFile(path)
|
||||||
open_url(url)
|
open_url(url)
|
||||||
|
|
||||||
|
|
||||||
_ea_lock = Lock()
|
_ea_lock = Lock()
|
||||||
|
|
||||||
|
|
||||||
@ -1284,6 +1301,7 @@ def is_gui_thread():
|
|||||||
global gui_thread
|
global gui_thread
|
||||||
return gui_thread is QThread.currentThread()
|
return gui_thread is QThread.currentThread()
|
||||||
|
|
||||||
|
|
||||||
_rating_font = 'Arial Unicode MS' if iswindows else 'sans-serif'
|
_rating_font = 'Arial Unicode MS' if iswindows else 'sans-serif'
|
||||||
|
|
||||||
|
|
||||||
@ -1370,6 +1388,7 @@ def build_forms(srcdir, info=None, summary=False, check_for_migration=False):
|
|||||||
if force_compile:
|
if force_compile:
|
||||||
gprefs.set('migrated_forms_to_qt5', True)
|
gprefs.set('migrated_forms_to_qt5', True)
|
||||||
|
|
||||||
|
|
||||||
_df = os.environ.get('CALIBRE_DEVELOP_FROM', None)
|
_df = os.environ.get('CALIBRE_DEVELOP_FROM', None)
|
||||||
if _df and os.path.exists(_df):
|
if _df and os.path.exists(_df):
|
||||||
build_forms(_df, check_for_migration=True)
|
build_forms(_df, check_for_migration=True)
|
||||||
|
@ -284,6 +284,7 @@ class BooksView(QTableView): # {{{
|
|||||||
self._model.about_to_be_sorted.connect(self.about_to_be_sorted)
|
self._model.about_to_be_sorted.connect(self.about_to_be_sorted)
|
||||||
self._model.sorting_done.connect(self.sorting_done,
|
self._model.sorting_done.connect(self.sorting_done,
|
||||||
type=Qt.QueuedConnection)
|
type=Qt.QueuedConnection)
|
||||||
|
self.set_row_header_visibility()
|
||||||
|
|
||||||
# Column Header Context Menu {{{
|
# Column Header Context Menu {{{
|
||||||
def column_header_context_handler(self, action=None, column=None):
|
def column_header_context_handler(self, action=None, column=None):
|
||||||
@ -762,6 +763,11 @@ class BooksView(QTableView): # {{{
|
|||||||
self.model().set_row_decoration(current_marked)
|
self.model().set_row_decoration(current_marked)
|
||||||
self.row_header.headerDataChanged(Qt.Vertical, 0, self.row_header.count()-1)
|
self.row_header.headerDataChanged(Qt.Vertical, 0, self.row_header.count()-1)
|
||||||
self.row_header.geometriesChanged.emit()
|
self.row_header.geometriesChanged.emit()
|
||||||
|
self.set_row_header_visibility()
|
||||||
|
|
||||||
|
def set_row_header_visibility(self):
|
||||||
|
visible = self.model().row_decoration is not None or gprefs['row_numbers_in_book_list']
|
||||||
|
self.row_header.setVisible(visible)
|
||||||
|
|
||||||
def database_changed(self, db):
|
def database_changed(self, db):
|
||||||
db.data.add_marked_listener(self.marked_changed_listener)
|
db.data.add_marked_listener(self.marked_changed_listener)
|
||||||
@ -1140,6 +1146,10 @@ class DeviceBooksView(BooksView): # {{{
|
|||||||
self.setItemDelegateForColumn(i, TextDelegate(self))
|
self.setItemDelegateForColumn(i, TextDelegate(self))
|
||||||
self.setDragDropMode(self.NoDragDrop)
|
self.setDragDropMode(self.NoDragDrop)
|
||||||
self.setAcceptDrops(False)
|
self.setAcceptDrops(False)
|
||||||
|
self.set_row_header_visibility()
|
||||||
|
|
||||||
|
def set_row_header_visibility(self):
|
||||||
|
self.row_header.setVisible(gprefs['row_numbers_in_book_list'])
|
||||||
|
|
||||||
def drag_data(self):
|
def drag_data(self):
|
||||||
m = self.model()
|
m = self.model()
|
||||||
@ -1197,4 +1207,3 @@ class DeviceBooksView(BooksView): # {{{
|
|||||||
self.drag_allowed = supports_backloading
|
self.drag_allowed = supports_backloading
|
||||||
|
|
||||||
# }}}
|
# }}}
|
||||||
|
|
||||||
|
@ -284,6 +284,7 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form):
|
|||||||
r('ui_style', gprefs, restart_required=True, choices=[(_('System default'), 'system'), (_('Calibre style'),
|
r('ui_style', gprefs, restart_required=True, choices=[(_('System default'), 'system'), (_('Calibre style'),
|
||||||
'calibre')])
|
'calibre')])
|
||||||
r('book_list_tooltips', gprefs)
|
r('book_list_tooltips', gprefs)
|
||||||
|
r('row_numbers_in_book_list', gprefs)
|
||||||
r('tag_browser_old_look', gprefs, restart_required=True)
|
r('tag_browser_old_look', gprefs, restart_required=True)
|
||||||
r('tag_browser_hide_empty_categories', gprefs)
|
r('tag_browser_hide_empty_categories', gprefs)
|
||||||
r('bd_show_cover', gprefs)
|
r('bd_show_cover', gprefs)
|
||||||
@ -644,13 +645,17 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form):
|
|||||||
self.update_font_display()
|
self.update_font_display()
|
||||||
gui.tags_view.reread_collapse_parameters()
|
gui.tags_view.reread_collapse_parameters()
|
||||||
gui.library_view.refresh_book_details()
|
gui.library_view.refresh_book_details()
|
||||||
|
gui.library_view.set_row_header_visibility()
|
||||||
gui.cover_flow.setShowReflections(gprefs['cover_browser_reflections'])
|
gui.cover_flow.setShowReflections(gprefs['cover_browser_reflections'])
|
||||||
gui.cover_flow.setPreserveAspectRatio(gprefs['cb_preserve_aspect_ratio'])
|
gui.cover_flow.setPreserveAspectRatio(gprefs['cb_preserve_aspect_ratio'])
|
||||||
gui.update_cover_flow_subtitle_font()
|
gui.update_cover_flow_subtitle_font()
|
||||||
gui.cover_flow.template_inited = False
|
gui.cover_flow.template_inited = False
|
||||||
|
for view in 'library memory card_a card_b'.split():
|
||||||
|
getattr(gui, view + '_view').set_row_header_visibility()
|
||||||
gui.library_view.refresh_row_sizing()
|
gui.library_view.refresh_row_sizing()
|
||||||
gui.grid_view.refresh_settings()
|
gui.grid_view.refresh_settings()
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
from calibre.gui2 import Application
|
from calibre.gui2 import Application
|
||||||
app = Application([])
|
app = Application([])
|
||||||
|
@ -116,7 +116,7 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="10" column="0">
|
<item row="11" column="0">
|
||||||
<spacer name="verticalSpacer_3">
|
<spacer name="verticalSpacer_3">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Vertical</enum>
|
<enum>Qt::Vertical</enum>
|
||||||
@ -191,16 +191,6 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="0">
|
|
||||||
<widget class="QLabel" name="label_17">
|
|
||||||
<property name="text">
|
|
||||||
<string>&User Interface layout (needs restart):</string>
|
|
||||||
</property>
|
|
||||||
<property name="buddy">
|
|
||||||
<cstring>opt_gui_layout</cstring>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="0">
|
<item row="0" column="0">
|
||||||
<widget class="QLabel" name="label_widget_style">
|
<widget class="QLabel" name="label_widget_style">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
@ -211,6 +201,16 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item row="2" column="0">
|
||||||
|
<widget class="QLabel" name="label_17">
|
||||||
|
<property name="text">
|
||||||
|
<string>&User Interface layout (needs restart):</string>
|
||||||
|
</property>
|
||||||
|
<property name="buddy">
|
||||||
|
<cstring>opt_gui_layout</cstring>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
<item row="4" column="1">
|
<item row="4" column="1">
|
||||||
<widget class="QCheckBox" name="opt_disable_animations">
|
<widget class="QCheckBox" name="opt_disable_animations">
|
||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
@ -235,6 +235,13 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item row="10" column="0">
|
||||||
|
<widget class="QCheckBox" name="opt_row_numbers_in_book_list">
|
||||||
|
<property name="text">
|
||||||
|
<string>Show &row numbers in the book list</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QWidget" name="cover_grid_tab">
|
<widget class="QWidget" name="cover_grid_tab">
|
||||||
|
Loading…
x
Reference in New Issue
Block a user