2018-04-06 04:00:25 -05:00
|
|
|
##########################################################################
|
|
|
|
#
|
|
|
|
# pgAdmin 4 - PostgreSQL Tools
|
|
|
|
#
|
2021-01-04 04:04:45 -06:00
|
|
|
# Copyright (C) 2013 - 2021, The pgAdmin Development Team
|
2018-04-06 04:00:25 -05:00
|
|
|
# This software is released under the PostgreSQL Licence
|
|
|
|
#
|
|
|
|
##########################################################################
|
2021-06-01 09:34:43 -05:00
|
|
|
import sys
|
2018-04-06 04:00:25 -05:00
|
|
|
from flask_babelex import gettext
|
2020-08-20 07:28:37 -05:00
|
|
|
from pgadmin.utils.constants import PREF_LABEL_DISPLAY,\
|
2020-11-04 06:15:28 -06:00
|
|
|
PREF_LABEL_KEYBOARD_SHORTCUTS, PREF_LABEL_TABS_SETTINGS, \
|
2021-06-07 11:37:51 -05:00
|
|
|
PREF_LABEL_OPTIONS, QT_DEFAULT_PLACEHOLDER
|
2021-05-25 09:42:57 -05:00
|
|
|
from flask_security import current_user
|
2020-09-03 02:29:28 -05:00
|
|
|
import config
|
2018-04-06 04:00:25 -05:00
|
|
|
|
2019-05-31 10:51:30 -05:00
|
|
|
LOCK_LAYOUT_LEVEL = {
|
|
|
|
'PREVENT_DOCKING': 'docking',
|
|
|
|
'FULL': 'full',
|
|
|
|
'NONE': 'none'
|
|
|
|
}
|
|
|
|
|
2018-04-06 04:00:25 -05:00
|
|
|
|
|
|
|
def register_browser_preferences(self):
|
|
|
|
self.show_system_objects = self.preference.register(
|
|
|
|
'display', 'show_system_objects',
|
|
|
|
gettext("Show system objects?"), 'boolean', False,
|
2020-08-20 07:28:37 -05:00
|
|
|
category_label=PREF_LABEL_DISPLAY
|
2018-04-06 04:00:25 -05:00
|
|
|
)
|
2020-09-03 02:29:28 -05:00
|
|
|
if config.SERVER_MODE:
|
|
|
|
self.hide_shared_server = self.preference.register(
|
|
|
|
'display', 'hide_shared_server',
|
2020-09-30 01:59:59 -05:00
|
|
|
gettext("Hide shared servers?"), 'boolean', False,
|
2020-09-03 02:29:28 -05:00
|
|
|
category_label=gettext('Display'),
|
|
|
|
help_str=gettext(
|
2020-09-30 01:59:59 -05:00
|
|
|
'If set to True, then all shared servers will be '
|
|
|
|
'hidden from browser tree'
|
2020-09-03 02:29:28 -05:00
|
|
|
)
|
|
|
|
)
|
2018-04-06 04:00:25 -05:00
|
|
|
|
|
|
|
self.preference.register(
|
|
|
|
'display', 'enable_acitree_animation',
|
|
|
|
gettext("Enable browser tree animation?"), 'boolean', True,
|
2020-08-20 07:28:37 -05:00
|
|
|
category_label=PREF_LABEL_DISPLAY
|
2018-04-06 04:00:25 -05:00
|
|
|
)
|
|
|
|
|
|
|
|
self.preference.register(
|
|
|
|
'display', 'enable_alertify_animation',
|
|
|
|
gettext("Enable dialogue/notification animation?"), 'boolean',
|
2020-08-20 07:28:37 -05:00
|
|
|
True, category_label=PREF_LABEL_DISPLAY
|
2018-04-06 04:00:25 -05:00
|
|
|
)
|
|
|
|
|
2018-10-08 04:03:19 -05:00
|
|
|
self.preference.register(
|
|
|
|
'display', 'browser_tree_state_save_interval',
|
|
|
|
gettext("Browser tree state saving interval"), 'integer',
|
2020-08-20 07:28:37 -05:00
|
|
|
30, category_label=PREF_LABEL_DISPLAY,
|
2018-10-08 04:03:19 -05:00
|
|
|
help_str=gettext(
|
2020-04-10 04:22:41 -05:00
|
|
|
'Browser tree state saving interval in seconds. '
|
2018-10-08 04:03:19 -05:00
|
|
|
'Use -1 to disable the tree saving mechanism.'
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
2019-01-23 00:27:36 -06:00
|
|
|
self.preference.register(
|
|
|
|
'display', 'confirm_on_refresh_close',
|
2020-04-10 04:22:41 -05:00
|
|
|
gettext("Confirm on close or refresh?"), 'boolean',
|
2020-08-20 07:28:37 -05:00
|
|
|
True, category_label=PREF_LABEL_DISPLAY,
|
2019-01-23 00:27:36 -06:00
|
|
|
help_str=gettext(
|
|
|
|
'Confirm closure or refresh of the browser or browser tab is '
|
|
|
|
'intended before proceeding.'
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
2019-10-29 09:31:43 -05:00
|
|
|
self.preference.register(
|
|
|
|
'display', 'confirm_on_properties_close',
|
2020-04-10 04:22:41 -05:00
|
|
|
gettext("Confirm before Close/Reset in object properties dialog?"),
|
2019-10-29 09:31:43 -05:00
|
|
|
'boolean',
|
2020-08-20 07:28:37 -05:00
|
|
|
True, category_label=PREF_LABEL_DISPLAY,
|
2019-10-29 09:31:43 -05:00
|
|
|
help_str=gettext(
|
2019-11-05 02:58:03 -06:00
|
|
|
'Confirm before closing or resetting the changes in the '
|
|
|
|
'properties dialog for an object if the changes are not saved.'
|
2019-10-29 09:31:43 -05:00
|
|
|
)
|
|
|
|
)
|
|
|
|
|
2019-02-14 03:18:08 -06:00
|
|
|
self.preference.register(
|
|
|
|
'display', 'auto_expand_sole_children',
|
|
|
|
gettext("Auto-expand sole children"), 'boolean', True,
|
2020-08-20 07:28:37 -05:00
|
|
|
category_label=PREF_LABEL_DISPLAY,
|
2019-02-14 03:18:08 -06:00
|
|
|
help_str=gettext(
|
|
|
|
'If a treeview node is expanded and has only a single '
|
|
|
|
'child, automatically expand the child node as well.'
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
2019-05-31 10:51:30 -05:00
|
|
|
self.lock_layout = self.preference.register(
|
|
|
|
'display', 'lock_layout',
|
|
|
|
gettext('Lock Layout'), 'radioModern', LOCK_LAYOUT_LEVEL['NONE'],
|
2020-08-20 07:28:37 -05:00
|
|
|
category_label=PREF_LABEL_DISPLAY, options=[
|
2019-05-31 10:51:30 -05:00
|
|
|
{'label': gettext('None'), 'value': LOCK_LAYOUT_LEVEL['NONE']},
|
|
|
|
{'label': gettext('Prevent Docking'),
|
|
|
|
'value': LOCK_LAYOUT_LEVEL['PREVENT_DOCKING']},
|
2019-05-31 11:12:04 -05:00
|
|
|
{'label': gettext('Full Lock'),
|
|
|
|
'value': LOCK_LAYOUT_LEVEL['FULL']},
|
2019-05-31 10:51:30 -05:00
|
|
|
],
|
|
|
|
help_str=gettext(
|
|
|
|
'Lock the UI layout at different levels'
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
2018-04-06 04:00:25 -05:00
|
|
|
self.table_row_count_threshold = self.preference.register(
|
|
|
|
'properties', 'table_row_count_threshold',
|
|
|
|
gettext("Count rows if estimated less than"), 'integer', 2000,
|
|
|
|
category_label=gettext('Properties')
|
|
|
|
)
|
|
|
|
|
|
|
|
self.pg_agent_row_threshold = self.preference.register(
|
|
|
|
'properties', 'pgagent_row_threshold',
|
|
|
|
gettext("Maximum job history rows"), 'integer', 250,
|
|
|
|
category_label=gettext('Properties'),
|
|
|
|
min_val=1, max_val=9999,
|
|
|
|
help_str=gettext(
|
|
|
|
'The maximum number of history rows to show on '
|
|
|
|
'the Statistics tab for pgAgent jobs'
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
fields = [
|
|
|
|
{'name': 'key', 'type': 'keyCode', 'label': gettext('Key')},
|
|
|
|
{'name': 'shift', 'type': 'checkbox', 'label': gettext('Shift')},
|
|
|
|
{'name': 'control', 'type': 'checkbox', 'label': gettext('Ctrl')},
|
|
|
|
{'name': 'alt', 'type': 'checkbox', 'label': gettext('Alt/Option')}
|
|
|
|
]
|
|
|
|
|
|
|
|
self.preference.register(
|
|
|
|
'keyboard_shortcuts',
|
|
|
|
'browser_tree',
|
|
|
|
gettext('Browser tree'),
|
|
|
|
'keyboardshortcut',
|
|
|
|
{
|
|
|
|
'alt': True,
|
|
|
|
'shift': True,
|
|
|
|
'control': False,
|
|
|
|
'key': {'key_code': 66, 'char': 'b'}
|
|
|
|
},
|
2020-08-20 07:28:37 -05:00
|
|
|
category_label=PREF_LABEL_KEYBOARD_SHORTCUTS,
|
2018-04-06 04:00:25 -05:00
|
|
|
fields=fields
|
|
|
|
)
|
|
|
|
|
|
|
|
self.preference.register(
|
|
|
|
'keyboard_shortcuts',
|
|
|
|
'tabbed_panel_backward',
|
|
|
|
gettext('Tabbed panel backward'),
|
|
|
|
'keyboardshortcut',
|
|
|
|
{
|
|
|
|
'alt': True,
|
|
|
|
'shift': True,
|
|
|
|
'control': False,
|
|
|
|
'key': {'key_code': 91, 'char': '['}
|
|
|
|
},
|
2020-08-20 07:28:37 -05:00
|
|
|
category_label=PREF_LABEL_KEYBOARD_SHORTCUTS,
|
2018-04-06 04:00:25 -05:00
|
|
|
fields=fields
|
|
|
|
)
|
|
|
|
|
|
|
|
self.preference.register(
|
|
|
|
'keyboard_shortcuts',
|
|
|
|
'tabbed_panel_forward',
|
|
|
|
gettext('Tabbed panel forward'),
|
|
|
|
'keyboardshortcut',
|
|
|
|
{
|
|
|
|
'alt': True,
|
|
|
|
'shift': True,
|
|
|
|
'control': False,
|
|
|
|
'key': {'key_code': 93, 'char': ']'}
|
|
|
|
},
|
2020-08-20 07:28:37 -05:00
|
|
|
category_label=PREF_LABEL_KEYBOARD_SHORTCUTS,
|
2018-04-06 04:00:25 -05:00
|
|
|
fields=fields
|
|
|
|
)
|
|
|
|
|
|
|
|
self.preference.register(
|
|
|
|
'keyboard_shortcuts',
|
|
|
|
'main_menu_file',
|
|
|
|
gettext('File main menu'),
|
|
|
|
'keyboardshortcut',
|
|
|
|
{
|
|
|
|
'alt': True,
|
|
|
|
'shift': True,
|
|
|
|
'control': False,
|
|
|
|
'key': {'key_code': 70, 'char': 'f'}
|
|
|
|
},
|
2020-08-20 07:28:37 -05:00
|
|
|
category_label=PREF_LABEL_KEYBOARD_SHORTCUTS,
|
2018-04-06 04:00:25 -05:00
|
|
|
fields=fields
|
|
|
|
)
|
|
|
|
|
|
|
|
self.preference.register(
|
|
|
|
'keyboard_shortcuts',
|
|
|
|
'main_menu_object',
|
|
|
|
gettext('Object main menu'),
|
|
|
|
'keyboardshortcut',
|
|
|
|
{
|
|
|
|
'alt': True,
|
|
|
|
'shift': True,
|
|
|
|
'control': False,
|
|
|
|
'key': {'key_code': 79, 'char': 'o'}
|
|
|
|
},
|
2020-08-20 07:28:37 -05:00
|
|
|
category_label=PREF_LABEL_KEYBOARD_SHORTCUTS,
|
2018-04-06 04:00:25 -05:00
|
|
|
fields=fields
|
|
|
|
)
|
|
|
|
|
|
|
|
self.preference.register(
|
|
|
|
'keyboard_shortcuts',
|
|
|
|
'main_menu_tools',
|
|
|
|
gettext('Tools main menu'),
|
|
|
|
'keyboardshortcut',
|
|
|
|
{
|
|
|
|
'alt': True,
|
|
|
|
'shift': True,
|
|
|
|
'control': False,
|
|
|
|
'key': {'key_code': 76, 'char': 'l'}
|
|
|
|
},
|
2020-08-20 07:28:37 -05:00
|
|
|
category_label=PREF_LABEL_KEYBOARD_SHORTCUTS,
|
2018-04-06 04:00:25 -05:00
|
|
|
fields=fields
|
|
|
|
)
|
|
|
|
|
|
|
|
self.preference.register(
|
|
|
|
'keyboard_shortcuts',
|
|
|
|
'main_menu_help',
|
|
|
|
gettext('Help main menu'),
|
|
|
|
'keyboardshortcut',
|
|
|
|
{
|
|
|
|
'alt': True,
|
|
|
|
'shift': True,
|
|
|
|
'control': False,
|
|
|
|
'key': {'key_code': 72, 'char': 'h'}
|
|
|
|
},
|
2020-08-20 07:28:37 -05:00
|
|
|
category_label=PREF_LABEL_KEYBOARD_SHORTCUTS,
|
2018-04-06 04:00:25 -05:00
|
|
|
fields=fields
|
|
|
|
)
|
|
|
|
|
|
|
|
self.preference.register(
|
|
|
|
'keyboard_shortcuts',
|
|
|
|
'sub_menu_query_tool',
|
|
|
|
gettext('Open query tool'),
|
|
|
|
'keyboardshortcut',
|
|
|
|
{
|
|
|
|
'alt': True,
|
|
|
|
'shift': True,
|
|
|
|
'control': False,
|
|
|
|
'key': {'key_code': 81, 'char': 'q'}
|
|
|
|
},
|
2020-08-20 07:28:37 -05:00
|
|
|
category_label=PREF_LABEL_KEYBOARD_SHORTCUTS,
|
2018-04-06 04:00:25 -05:00
|
|
|
fields=fields
|
|
|
|
)
|
|
|
|
|
|
|
|
self.preference.register(
|
|
|
|
'keyboard_shortcuts',
|
|
|
|
'sub_menu_view_data',
|
|
|
|
gettext('View data'),
|
|
|
|
'keyboardshortcut',
|
|
|
|
{
|
|
|
|
'alt': True,
|
|
|
|
'shift': True,
|
|
|
|
'control': False,
|
|
|
|
'key': {'key_code': 86, 'char': 'v'}
|
|
|
|
},
|
2020-08-20 07:28:37 -05:00
|
|
|
category_label=PREF_LABEL_KEYBOARD_SHORTCUTS,
|
2018-04-06 04:00:25 -05:00
|
|
|
fields=fields
|
|
|
|
)
|
|
|
|
|
2020-04-06 07:03:07 -05:00
|
|
|
self.preference.register(
|
|
|
|
'keyboard_shortcuts',
|
|
|
|
'sub_menu_search_objects',
|
|
|
|
gettext('Search objects'),
|
|
|
|
'keyboardshortcut',
|
|
|
|
{
|
|
|
|
'alt': True,
|
|
|
|
'shift': True,
|
|
|
|
'control': False,
|
|
|
|
'key': {'key_code': 83, 'char': 's'}
|
|
|
|
},
|
2020-08-20 07:28:37 -05:00
|
|
|
category_label=PREF_LABEL_KEYBOARD_SHORTCUTS,
|
2020-04-06 07:03:07 -05:00
|
|
|
fields=fields
|
|
|
|
)
|
|
|
|
|
2018-04-06 04:00:25 -05:00
|
|
|
self.preference.register(
|
|
|
|
'keyboard_shortcuts',
|
|
|
|
'sub_menu_create',
|
|
|
|
gettext('Create object'),
|
|
|
|
'keyboardshortcut',
|
|
|
|
{
|
|
|
|
'alt': True,
|
|
|
|
'shift': True,
|
|
|
|
'control': False,
|
|
|
|
'key': {'key_code': 78, 'char': 'n'}
|
|
|
|
},
|
2020-08-20 07:28:37 -05:00
|
|
|
category_label=PREF_LABEL_KEYBOARD_SHORTCUTS,
|
2018-04-06 04:00:25 -05:00
|
|
|
fields=fields
|
|
|
|
)
|
|
|
|
|
|
|
|
self.preference.register(
|
|
|
|
'keyboard_shortcuts',
|
|
|
|
'sub_menu_properties',
|
|
|
|
gettext('Edit object properties'),
|
|
|
|
'keyboardshortcut',
|
|
|
|
{
|
|
|
|
'alt': True,
|
|
|
|
'shift': True,
|
|
|
|
'control': False,
|
|
|
|
'key': {'key_code': 69, 'char': 'e'}
|
|
|
|
},
|
2020-08-20 07:28:37 -05:00
|
|
|
category_label=PREF_LABEL_KEYBOARD_SHORTCUTS,
|
2018-04-06 04:00:25 -05:00
|
|
|
fields=fields
|
|
|
|
)
|
|
|
|
|
|
|
|
self.preference.register(
|
|
|
|
'keyboard_shortcuts',
|
|
|
|
'sub_menu_delete',
|
|
|
|
gettext('Delete object'),
|
|
|
|
'keyboardshortcut',
|
|
|
|
{
|
|
|
|
'alt': True,
|
|
|
|
'shift': True,
|
|
|
|
'control': False,
|
|
|
|
'key': {'key_code': 68, 'char': 'd'}
|
|
|
|
},
|
2020-08-20 07:28:37 -05:00
|
|
|
category_label=PREF_LABEL_KEYBOARD_SHORTCUTS,
|
2018-10-31 05:30:36 -05:00
|
|
|
fields=fields
|
|
|
|
)
|
|
|
|
|
|
|
|
self.preference.register(
|
|
|
|
'keyboard_shortcuts',
|
|
|
|
'grid_menu_drop_multiple',
|
|
|
|
gettext('Delete/Drop multiple objects'),
|
|
|
|
'keyboardshortcut',
|
|
|
|
{
|
|
|
|
'alt': True,
|
|
|
|
'shift': True,
|
|
|
|
'control': False,
|
|
|
|
'key': {'key_code': 77, 'char': 'm'}
|
|
|
|
},
|
2020-08-20 07:28:37 -05:00
|
|
|
category_label=PREF_LABEL_KEYBOARD_SHORTCUTS,
|
2018-10-31 05:30:36 -05:00
|
|
|
fields=fields
|
|
|
|
)
|
|
|
|
|
|
|
|
self.preference.register(
|
|
|
|
'keyboard_shortcuts',
|
|
|
|
'grid_menu_drop_cascade_multiple',
|
|
|
|
gettext('Drop Cascade multiple objects'),
|
|
|
|
'keyboardshortcut',
|
|
|
|
{
|
|
|
|
'alt': True,
|
|
|
|
'shift': True,
|
|
|
|
'control': False,
|
|
|
|
'key': {'key_code': 85, 'char': 'u'}
|
|
|
|
},
|
2020-08-20 07:28:37 -05:00
|
|
|
category_label=PREF_LABEL_KEYBOARD_SHORTCUTS,
|
2018-04-06 04:00:25 -05:00
|
|
|
fields=fields
|
|
|
|
)
|
|
|
|
|
|
|
|
self.preference.register(
|
|
|
|
'keyboard_shortcuts',
|
|
|
|
'context_menu',
|
|
|
|
gettext('Open context menu'),
|
|
|
|
'keyboardshortcut',
|
|
|
|
{
|
|
|
|
'alt': True,
|
|
|
|
'shift': True,
|
|
|
|
'control': False,
|
|
|
|
'key': {'key_code': 67, 'char': 'c'}
|
|
|
|
},
|
2020-08-20 07:28:37 -05:00
|
|
|
category_label=PREF_LABEL_KEYBOARD_SHORTCUTS,
|
2018-04-06 04:00:25 -05:00
|
|
|
fields=fields
|
|
|
|
)
|
|
|
|
|
|
|
|
self.preference.register(
|
|
|
|
'keyboard_shortcuts',
|
|
|
|
'direct_debugging',
|
|
|
|
gettext('Direct debugging'),
|
|
|
|
'keyboardshortcut',
|
|
|
|
{
|
|
|
|
'alt': True,
|
|
|
|
'shift': True,
|
|
|
|
'control': False,
|
|
|
|
'key': {'key_code': 71, 'char': 'g'}
|
|
|
|
},
|
2020-08-20 07:28:37 -05:00
|
|
|
category_label=PREF_LABEL_KEYBOARD_SHORTCUTS,
|
2018-04-06 04:00:25 -05:00
|
|
|
fields=fields
|
|
|
|
)
|
|
|
|
|
|
|
|
self.preference.register(
|
|
|
|
'keyboard_shortcuts',
|
|
|
|
'dialog_tab_forward',
|
|
|
|
gettext('Dialog tab forward'),
|
|
|
|
'keyboardshortcut',
|
|
|
|
{
|
|
|
|
'alt': False,
|
|
|
|
'shift': True,
|
|
|
|
'control': True,
|
|
|
|
'key': {'key_code': 93, 'char': ']'}
|
|
|
|
},
|
2020-08-20 07:28:37 -05:00
|
|
|
category_label=PREF_LABEL_KEYBOARD_SHORTCUTS,
|
2018-04-06 04:00:25 -05:00
|
|
|
fields=fields
|
|
|
|
)
|
|
|
|
|
|
|
|
self.preference.register(
|
|
|
|
'keyboard_shortcuts',
|
|
|
|
'dialog_tab_backward',
|
|
|
|
gettext('Dialog tab backward'),
|
|
|
|
'keyboardshortcut',
|
|
|
|
{
|
|
|
|
'alt': False,
|
|
|
|
'shift': True,
|
|
|
|
'control': True,
|
|
|
|
'key': {'key_code': 91, 'char': '['}
|
|
|
|
},
|
2020-08-20 07:28:37 -05:00
|
|
|
category_label=PREF_LABEL_KEYBOARD_SHORTCUTS,
|
2018-04-06 04:00:25 -05:00
|
|
|
fields=fields
|
|
|
|
)
|
2018-05-02 01:13:42 -05:00
|
|
|
|
|
|
|
self.preference.register(
|
|
|
|
'keyboard_shortcuts',
|
|
|
|
'sub_menu_refresh',
|
|
|
|
gettext('Refresh browser tree'),
|
|
|
|
'keyboardshortcut',
|
|
|
|
{
|
|
|
|
'alt': False,
|
|
|
|
'shift': False,
|
|
|
|
'control': False,
|
|
|
|
'key': {'key_code': 116, 'char': 'F5'}
|
|
|
|
},
|
2020-08-20 07:28:37 -05:00
|
|
|
category_label=PREF_LABEL_KEYBOARD_SHORTCUTS,
|
2018-05-02 01:13:42 -05:00
|
|
|
fields=fields
|
|
|
|
)
|
2019-07-11 04:14:01 -05:00
|
|
|
|
|
|
|
self.preference.register(
|
|
|
|
'keyboard_shortcuts',
|
|
|
|
'add_grid_row',
|
|
|
|
gettext('Add grid row'),
|
|
|
|
'keyboardshortcut',
|
|
|
|
{
|
|
|
|
'alt': False,
|
|
|
|
'shift': True,
|
|
|
|
'control': True,
|
|
|
|
'key': {'key_code': 65, 'char': 'a'}
|
|
|
|
},
|
2020-08-20 07:28:37 -05:00
|
|
|
category_label=PREF_LABEL_KEYBOARD_SHORTCUTS,
|
2019-07-11 04:14:01 -05:00
|
|
|
fields=fields
|
|
|
|
)
|
2020-11-04 06:15:28 -06:00
|
|
|
|
2021-02-02 03:17:58 -06:00
|
|
|
self.preference.register(
|
|
|
|
'keyboard_shortcuts', 'open_quick_search',
|
|
|
|
gettext('Quick Search'), 'keyboardshortcut',
|
|
|
|
{
|
|
|
|
'alt': False,
|
|
|
|
'shift': True,
|
|
|
|
'control': True,
|
|
|
|
'key': {'key_code': 70, 'char': 'f'}
|
|
|
|
},
|
|
|
|
category_label=PREF_LABEL_KEYBOARD_SHORTCUTS,
|
|
|
|
fields=fields
|
|
|
|
)
|
|
|
|
|
2020-11-04 06:15:28 -06:00
|
|
|
self.dynamic_tab_title = self.preference.register(
|
2021-01-18 01:32:19 -06:00
|
|
|
'tab_settings', 'dynamic_tabs',
|
2020-11-04 06:15:28 -06:00
|
|
|
gettext("Dynamic tab size"), 'boolean', False,
|
|
|
|
category_label=PREF_LABEL_TABS_SETTINGS,
|
|
|
|
help_str=gettext(
|
|
|
|
'If set to True, the tabs will take full size as per the title, '
|
|
|
|
'it will also applicable for already opened tabs')
|
|
|
|
)
|
|
|
|
|
|
|
|
self.qt_tab_title = self.preference.register(
|
2021-01-18 01:32:19 -06:00
|
|
|
'tab_settings', 'qt_tab_title_placeholder',
|
2020-11-04 06:15:28 -06:00
|
|
|
gettext("Query tool tab title"),
|
2021-06-07 11:37:51 -05:00
|
|
|
'text', QT_DEFAULT_PLACEHOLDER,
|
2020-11-04 06:15:28 -06:00
|
|
|
category_label=PREF_LABEL_DISPLAY,
|
|
|
|
help_str=gettext(
|
|
|
|
'Supported placeholders are %DATABASE%, %USERNAME%, and %SERVER%. '
|
|
|
|
'Users can provide any string with or without placeholders of'
|
|
|
|
' their choice. The blank title will be revert back to the'
|
|
|
|
' default title with placeholders.'
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
self.ve_edt_tab_title = self.preference.register(
|
2021-01-18 01:32:19 -06:00
|
|
|
'tab_settings', 'vw_edt_tab_title_placeholder',
|
2020-11-04 06:15:28 -06:00
|
|
|
gettext("View/Edit data tab title"),
|
|
|
|
'text', '%SCHEMA%.%TABLE%/%DATABASE%/%USERNAME%@%SERVER%',
|
|
|
|
category_label=PREF_LABEL_DISPLAY,
|
|
|
|
help_str=gettext(
|
|
|
|
'Supported placeholders are %SCHEMA%, %TABLE%, %DATABASE%, '
|
|
|
|
'%USERNAME%, and %SERVER%. Users can provide any string with or '
|
|
|
|
'without placeholders of their choice. The blank title will be '
|
|
|
|
'revert back to the default title with placeholders.'
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
self.debugger_tab_title = self.preference.register(
|
2021-01-18 01:32:19 -06:00
|
|
|
'tab_settings', 'debugger_tab_title_placeholder',
|
2020-11-04 06:15:28 -06:00
|
|
|
gettext("Debugger tab title"),
|
|
|
|
'text', '%FUNCTION%(%ARGS%)',
|
|
|
|
category_label=PREF_LABEL_DISPLAY,
|
|
|
|
help_str=gettext(
|
|
|
|
'Supported placeholders are %FUNCTION%, %ARGS%, %SCHEMA% and'
|
|
|
|
' %DATABASE%. Users can provide any string with or '
|
|
|
|
'without placeholders of their choice. The blank title will be'
|
|
|
|
' revert back to the default title with placeholders.'
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
2021-06-08 04:28:43 -05:00
|
|
|
self.open_in_new_tab = self.preference.register(
|
|
|
|
'tab_settings', 'new_browser_tab_open',
|
|
|
|
gettext("Open in new browser tab"), 'select2', None,
|
|
|
|
category_label=PREF_LABEL_OPTIONS,
|
|
|
|
options=[{'label': gettext('Query Tool'), 'value': 'qt'},
|
|
|
|
{'label': gettext('Debugger'), 'value': 'debugger'},
|
|
|
|
{'label': gettext('Schema Diff'), 'value': 'schema_diff'},
|
|
|
|
{'label': gettext('ERD Tool'), 'value': 'erd_tool'},
|
|
|
|
{'label': gettext('PSQL Tool'), 'value': 'psql_tool'}],
|
|
|
|
help_str=gettext(
|
|
|
|
'Select Query Tool, Debugger, Schema Diff, ERD Tool '
|
|
|
|
'or PSQL Tool from the drop-down to set '
|
|
|
|
'open in new browser tab for that particular module.'
|
|
|
|
),
|
|
|
|
select2={
|
|
|
|
'multiple': True, 'allowClear': False,
|
|
|
|
'tags': True, 'first_empty': False,
|
|
|
|
'selectOnClose': False, 'emptyOptions': True,
|
|
|
|
'tokenSeparators': [','],
|
|
|
|
'placeholder': gettext('Select open new tab...')
|
|
|
|
}
|
|
|
|
)
|
|
|
|
|
|
|
|
self.psql_tab_title = self.preference.register(
|
|
|
|
'tab_settings', 'psql_tab_title_placeholder',
|
|
|
|
gettext("PSQL tool tab title"),
|
|
|
|
'text', '%DATABASE%/%USERNAME%@%SERVER%',
|
|
|
|
category_label=PREF_LABEL_DISPLAY,
|
|
|
|
help_str=gettext(
|
|
|
|
'Supported placeholders are %DATABASE%, %USERNAME%, '
|
|
|
|
'and %SERVER%. Users can provide any string with or without'
|
|
|
|
' placeholders of their choice. The blank title will be revert'
|
|
|
|
' back to the default title with placeholders.'
|
2021-05-25 09:42:57 -05:00
|
|
|
)
|
2021-06-08 04:28:43 -05:00
|
|
|
)
|