diff --git a/web/pgadmin/tools/sqleditor/utils/query_tool_preferences.py b/web/pgadmin/tools/sqleditor/utils/query_tool_preferences.py index ddc00b31f..f33207eb9 100644 --- a/web/pgadmin/tools/sqleditor/utils/query_tool_preferences.py +++ b/web/pgadmin/tools/sqleditor/utils/query_tool_preferences.py @@ -11,14 +11,17 @@ from flask_babelex import gettext from pgadmin.utils import SHORTCUT_FIELDS as shortcut_fields, \ ACCESSKEY_FIELDS as accesskey_fields -from pgadmin.utils.preferences import Preferences def register_query_tool_preferences(self): + + # Display preferences + display_label = gettext('Display') + self.info_notifier_timeout = self.preference.register( 'display', 'info_notifier_timeout', gettext("Query info notifier timeout"), 'integer', 5, - category_label=gettext('Display'), + category_label=display_label, min_val=-1, max_val=999999, help_str=gettext( @@ -33,51 +36,57 @@ def register_query_tool_preferences(self): self.open_in_new_tab = self.preference.register( 'display', 'new_browser_tab', gettext("Open in new browser tab"), 'boolean', False, - category_label=gettext('Display'), + category_label=display_label, help_str=gettext('If set to True, the Query Tool ' 'will be opened in a new browser tab.') ) + # Explain preferences + explain_label = gettext('Explain') + self.explain_verbose = self.preference.register( 'Explain', 'explain_verbose', gettext("Verbose output?"), 'boolean', False, - category_label=gettext('Explain') + category_label=explain_label ) self.explain_costs = self.preference.register( 'Explain', 'explain_costs', gettext("Show costs?"), 'boolean', False, - category_label=gettext('Explain') + category_label=explain_label ) self.explain_buffers = self.preference.register( 'Explain', 'explain_buffers', gettext("Show buffers?"), 'boolean', False, - category_label=gettext('Explain') + category_label=explain_label ) self.explain_timing = self.preference.register( 'Explain', 'explain_timing', gettext("Show timing?"), 'boolean', False, - category_label=gettext('Explain') + category_label=explain_label ) self.explain_summary = self.preference.register( 'Explain', 'explain_summary', gettext("Show summary?"), 'boolean', False, - category_label=gettext('Explain') + category_label=explain_label ) self.explain_settings = self.preference.register( 'Explain', 'explain_settings', gettext("Show settings?"), 'boolean', False, - category_label=gettext('Explain') + category_label=explain_label ) + # Options preferences + options_label = gettext('Options') + self.auto_commit = self.preference.register( 'Options', 'auto_commit', gettext("Auto commit?"), 'boolean', True, - category_label=gettext('Options'), + category_label=options_label, help_str=gettext('Set auto commit on or off by default in new Query ' 'Tool tabs.') ) @@ -85,7 +94,7 @@ def register_query_tool_preferences(self): self.auto_rollback = self.preference.register( 'Options', 'auto_rollback', gettext("Auto rollback?"), 'boolean', False, - category_label=gettext('Options'), + category_label=options_label, help_str=gettext('Set auto rollback on or off by default in new Query ' 'Tool tabs.') ) @@ -93,7 +102,7 @@ def register_query_tool_preferences(self): self.show_prompt_save_query_changes = self.preference.register( 'Options', 'prompt_save_query_changes', gettext("Prompt to save unsaved query changes?"), 'boolean', True, - category_label=gettext('Options'), + category_label=options_label, help_str=gettext( 'Specifies whether or not to prompt user to save unsaved ' 'query on query tool exit.' @@ -104,7 +113,7 @@ def register_query_tool_preferences(self): 'Options', 'table_view_data_by_pk', gettext("Sort View Data results by primary key columns?"), 'boolean', True, - category_label=gettext('Options'), + category_label=options_label, help_str=gettext("If set to True, data returned when using the " "View/Edit Data - All Rows option will be sorted by " "the Primary Key columns by default. When using the " @@ -114,7 +123,7 @@ def register_query_tool_preferences(self): self.show_prompt_save_data_changes = self.preference.register( 'Options', 'prompt_save_data_changes', gettext("Prompt to save unsaved data changes?"), 'boolean', True, - category_label=gettext('Options'), + category_label=options_label, help_str=gettext( 'Specifies whether or not to prompt user to save unsaved ' 'data on data grid exit.' @@ -125,17 +134,20 @@ def register_query_tool_preferences(self): 'Options', 'prompt_commit_transaction', gettext("Prompt to commit/rollback active transactions?"), 'boolean', True, - category_label=gettext('Options'), + category_label=options_label, help_str=gettext( 'Specifies whether or not to prompt user to commit or rollback ' 'an active transaction on Query Tool exit.' ) ) + # Editor preferences + editor_label = gettext('Editor') + self.sql_font_size = self.preference.register( 'Editor', 'plain_editor_mode', gettext("Plain text mode?"), 'boolean', False, - category_label=gettext('Editor'), + category_label=editor_label, help_str=gettext( 'When set to True, keywords won\'t be highlighted and code ' 'folding will be disabled. Plain text mode will improve editor ' @@ -146,7 +158,7 @@ def register_query_tool_preferences(self): self.sql_font_size = self.preference.register( 'Editor', 'code_folding', gettext("Code folding?"), 'boolean', True, - category_label=gettext('Editor'), + category_label=editor_label, help_str=gettext( 'Enable or disable code folding. In plain text mode, this will ' 'have no effect as code folding is always disabled in that mode. ' @@ -154,25 +166,10 @@ def register_query_tool_preferences(self): ) ) - self.sql_font_size = self.preference.register( - 'Editor', 'sql_font_size', - gettext("Font size"), 'numeric', '1', - min_val=0.1, - max_val=10, - category_label=gettext('Display'), - help_str=gettext( - 'The font size to use for the SQL text boxes and editors. ' - 'The value specified is in "em" units, in which 1 is the ' - 'default relative font size. For example, to increase the ' - 'font size by 20 percent use a value of 1.2, or to reduce ' - 'by 20 percent, use a value of 0.8. Minimum 0.1, maximum 10.' - ) - ) - self.wrap_code = self.preference.register( 'Editor', 'wrap_code', gettext("Line wrapping?"), 'boolean', False, - category_label=gettext('Options'), + category_label=options_label, help_str=gettext( 'Specifies whether or not to wrap SQL code in the editor.' ) @@ -181,7 +178,7 @@ def register_query_tool_preferences(self): self.insert_pair_brackets = self.preference.register( 'Editor', 'insert_pair_brackets', gettext("Insert bracket pairs?"), 'boolean', True, - category_label=gettext('Options'), + category_label=options_label, help_str=gettext( 'Specifies whether or not to insert paired brackets in the ' 'editor.' @@ -191,17 +188,20 @@ def register_query_tool_preferences(self): self.brace_matching = self.preference.register( 'Editor', 'brace_matching', gettext("Brace matching?"), 'boolean', True, - category_label=gettext('Options'), + category_label=options_label, help_str=gettext( 'Specifies whether or not to highlight matched braces ' 'in the editor.' ) ) + # CSV/Text preferences + csv_text_label = gettext('CSV/TXT Output') + self.csv_quoting = self.preference.register( 'CSV_output', 'csv_quoting', gettext("CSV quoting"), 'options', 'strings', - category_label=gettext('CSV/TXT Output'), + category_label=csv_text_label, options=[{'label': gettext('None'), 'value': 'none'}, {'label': gettext('All'), 'value': 'all'}, {'label': gettext('Strings'), 'value': 'strings'}], @@ -214,7 +214,7 @@ def register_query_tool_preferences(self): self.csv_quote_char = self.preference.register( 'CSV_output', 'csv_quote_char', gettext("CSV quote character"), 'options', '"', - category_label=gettext('CSV/TXT Output'), + category_label=csv_text_label, options=[{'label': '"', 'value': '"'}, {'label': '\'', 'value': '\''}], select2={ @@ -226,7 +226,7 @@ def register_query_tool_preferences(self): self.csv_field_separator = self.preference.register( 'CSV_output', 'csv_field_separator', gettext("CSV field separator"), 'options', ',', - category_label=gettext('CSV/TXT output'), + category_label=csv_text_label, options=[{'label': ';', 'value': ';'}, {'label': ',', 'value': ','}, {'label': '|', 'value': '|'}, @@ -240,7 +240,7 @@ def register_query_tool_preferences(self): self.replace_nulls_with = self.preference.register( 'CSV_output', 'csv_replace_nulls_with', gettext("Replace null values with"), 'text', 'NULL', - category_label=gettext('CSV/TXT output'), + category_label=csv_text_label, help_str=gettext('Specifies the string that represents a null value ' 'while downloading query results as CSV. You can ' 'specify any arbitrary string to represent a ' @@ -248,10 +248,13 @@ def register_query_tool_preferences(self): allow_blanks=True ) + # Results grid preferences + results_grid_label = gettext('Results grid') + self.results_grid_quoting = self.preference.register( 'Results_grid', 'results_grid_quoting', gettext("Result copy quoting"), 'options', 'strings', - category_label=gettext('Results grid'), + category_label=results_grid_label, options=[{'label': gettext('None'), 'value': 'none'}, {'label': gettext('All'), 'value': 'all'}, {'label': gettext('Strings'), 'value': 'strings'}], @@ -264,7 +267,7 @@ def register_query_tool_preferences(self): self.results_grid_quote_char = self.preference.register( 'Results_grid', 'results_grid_quote_char', gettext("Result copy quote character"), 'options', '"', - category_label=gettext('Results grid'), + category_label=results_grid_label, options=[{'label': '"', 'value': '"'}, {'label': '\'', 'value': '\''}], select2={ @@ -276,7 +279,7 @@ def register_query_tool_preferences(self): self.results_grid_field_separator = self.preference.register( 'Results_grid', 'results_grid_field_separator', gettext("Result copy field separator"), 'options', '\t', - category_label=gettext('Results grid'), + category_label=results_grid_label, options=[{'label': ';', 'value': ';'}, {'label': ',', 'value': ','}, {'label': '|', 'value': '|'}, @@ -287,10 +290,28 @@ def register_query_tool_preferences(self): } ) + # Display preferences + display_label = gettext('Display') + + self.sql_font_size = self.preference.register( + 'Editor', 'sql_font_size', + gettext("Font size"), 'numeric', '1', + min_val=0.1, + max_val=10, + category_label=display_label, + help_str=gettext( + 'The font size to use for the SQL text boxes and editors. ' + 'The value specified is in "em" units, in which 1 is the ' + 'default relative font size. For example, to increase the ' + 'font size by 20 percent use a value of 1.2, or to reduce ' + 'by 20 percent, use a value of 0.8. Minimum 0.1, maximum 10.' + ) + ) + self.display_connection_status = self.preference.register( 'display', 'connection_status', gettext("Connection status"), 'boolean', True, - category_label=gettext('Display'), + category_label=display_label, help_str=gettext('If set to True, the Query Tool ' 'will monitor and display the connection and ' 'transaction status.') @@ -300,13 +321,16 @@ def register_query_tool_preferences(self): 'display', 'connection_status_fetch_time', gettext("Connection status refresh rate"), 'integer', 2, min_val=1, max_val=600, - category_label=gettext('Display'), + category_label=display_label, help_str=gettext( 'The number of seconds between connection/transaction ' 'status polls.' ) ) + # Keyboard shortcuts preferences + keyboard_shortcuts_label = gettext('Keyboard shortcuts') + self.preference.register( 'keyboard_shortcuts', 'execute_query', @@ -321,7 +345,7 @@ def register_query_tool_preferences(self): 'char': 'F5' } }, - category_label=gettext('Keyboard shortcuts'), + category_label=keyboard_shortcuts_label, fields=shortcut_fields ) @@ -339,7 +363,7 @@ def register_query_tool_preferences(self): 'char': 'F6' } }, - category_label=gettext('Keyboard shortcuts'), + category_label=keyboard_shortcuts_label, fields=shortcut_fields ) @@ -357,7 +381,7 @@ def register_query_tool_preferences(self): 'char': 'F7' } }, - category_label=gettext('Keyboard shortcuts'), + category_label=keyboard_shortcuts_label, fields=shortcut_fields ) @@ -375,7 +399,7 @@ def register_query_tool_preferences(self): 'char': 'F7' } }, - category_label=gettext('Keyboard shortcuts'), + category_label=keyboard_shortcuts_label, fields=shortcut_fields ) @@ -393,7 +417,7 @@ def register_query_tool_preferences(self): 'char': 'F8' } }, - category_label=gettext('Keyboard shortcuts'), + category_label=keyboard_shortcuts_label, fields=shortcut_fields ) @@ -411,7 +435,7 @@ def register_query_tool_preferences(self): 'char': '[' } }, - category_label=gettext('Keyboard shortcuts'), + category_label=keyboard_shortcuts_label, fields=shortcut_fields ) @@ -429,7 +453,7 @@ def register_query_tool_preferences(self): 'char': ']' } }, - category_label=gettext('Keyboard shortcuts'), + category_label=keyboard_shortcuts_label, fields=shortcut_fields ) @@ -447,7 +471,7 @@ def register_query_tool_preferences(self): 'char': 'Tab' } }, - category_label=gettext('Keyboard shortcuts'), + category_label=keyboard_shortcuts_label, fields=shortcut_fields ) @@ -461,7 +485,7 @@ def register_query_tool_preferences(self): 'char': 'o' } }, - category_label=gettext('Keyboard shortcuts'), + category_label=keyboard_shortcuts_label, fields=accesskey_fields ) @@ -474,7 +498,7 @@ def register_query_tool_preferences(self): 'char': 's' } }, - category_label=gettext('Keyboard shortcuts'), + category_label=keyboard_shortcuts_label, fields=accesskey_fields ) @@ -487,7 +511,7 @@ def register_query_tool_preferences(self): 'char': 'c' } }, - category_label=gettext('Keyboard shortcuts'), + category_label=keyboard_shortcuts_label, fields=accesskey_fields ) @@ -500,7 +524,7 @@ def register_query_tool_preferences(self): 'char': 'p' } }, - category_label=gettext('Keyboard shortcuts'), + category_label=keyboard_shortcuts_label, fields=accesskey_fields ) @@ -513,7 +537,7 @@ def register_query_tool_preferences(self): 'char': 'd' } }, - category_label=gettext('Keyboard shortcuts'), + category_label=keyboard_shortcuts_label, fields=accesskey_fields ) @@ -526,7 +550,7 @@ def register_query_tool_preferences(self): 'char': 'f' } }, - category_label=gettext('Keyboard shortcuts'), + category_label=keyboard_shortcuts_label, fields=accesskey_fields ) @@ -539,7 +563,7 @@ def register_query_tool_preferences(self): 'char': 'i' } }, - category_label=gettext('Keyboard shortcuts'), + category_label=keyboard_shortcuts_label, fields=accesskey_fields ) @@ -552,7 +576,7 @@ def register_query_tool_preferences(self): 'char': 'r' } }, - category_label=gettext('Keyboard shortcuts'), + category_label=keyboard_shortcuts_label, fields=accesskey_fields ) @@ -565,7 +589,7 @@ def register_query_tool_preferences(self): 'char': 'x' } }, - category_label=gettext('Keyboard shortcuts'), + category_label=keyboard_shortcuts_label, fields=accesskey_fields ) @@ -578,7 +602,7 @@ def register_query_tool_preferences(self): 'char': 'q' } }, - category_label=gettext('Keyboard shortcuts'), + category_label=keyboard_shortcuts_label, fields=accesskey_fields ) @@ -591,7 +615,7 @@ def register_query_tool_preferences(self): 'char': 'l' } }, - category_label=gettext('Keyboard shortcuts'), + category_label=keyboard_shortcuts_label, fields=accesskey_fields ) @@ -604,7 +628,7 @@ def register_query_tool_preferences(self): 'char': 't' } }, - category_label=gettext('Keyboard shortcuts'), + category_label=keyboard_shortcuts_label, fields=accesskey_fields ) @@ -617,7 +641,7 @@ def register_query_tool_preferences(self): 'char': 'n' } }, - category_label=gettext('Keyboard shortcuts'), + category_label=keyboard_shortcuts_label, fields=accesskey_fields ) @@ -635,7 +659,7 @@ def register_query_tool_preferences(self): 'char': 'u' } }, - category_label=gettext('Keyboard shortcuts'), + category_label=keyboard_shortcuts_label, fields=shortcut_fields ) @@ -661,7 +685,7 @@ def register_query_tool_preferences(self): 'char': 'm' } }, - category_label=gettext('Keyboard shortcuts'), + category_label=keyboard_shortcuts_label, fields=shortcut_fields ) @@ -679,18 +703,20 @@ def register_query_tool_preferences(self): 'char': 'r' } }, - category_label=gettext('Keyboard shortcuts'), + category_label=keyboard_shortcuts_label, fields=shortcut_fields ) # Register options for SQL formatting + sql_formatting_label = gettext('SQL formatting') + self.keyword_case = self.preference.register( 'editor', 'keyword_case', gettext("Keyword case"), 'radioModern', 'upper', options=[{'label': 'Upper case', 'value': 'upper'}, {'label': 'Lower case', 'value': 'lower'}, {'label': 'Capitalized', 'value': 'capitalize'}], - category_label=gettext('SQL formatting'), + category_label=sql_formatting_label, help_str=gettext( 'Convert keywords to upper, lower, or capitalized casing.' ) @@ -702,7 +728,7 @@ def register_query_tool_preferences(self): options=[{'label': 'Upper case', 'value': 'upper'}, {'label': 'Lower case', 'value': 'lower'}, {'label': 'Capitalized', 'value': 'capitalize'}], - category_label=gettext('SQL formatting'), + category_label=sql_formatting_label, help_str=gettext( 'Convert identifiers to upper, lower, or capitalized casing.' ) @@ -711,14 +737,14 @@ def register_query_tool_preferences(self): self.strip_comments = self.preference.register( 'editor', 'strip_comments', gettext("Strip comments?"), 'boolean', False, - category_label=gettext('SQL formatting'), + category_label=sql_formatting_label, help_str=gettext('If set to True, comments will be removed.') ) self.reindent = self.preference.register( 'editor', 'reindent', gettext("Re-indent?"), 'boolean', True, - category_label=gettext('SQL formatting'), + category_label=sql_formatting_label, help_str=gettext('If set to True, the indentations of the ' 'statements are changed.') ) @@ -726,7 +752,7 @@ def register_query_tool_preferences(self): self.reindent_aligned = self.preference.register( 'editor', 'reindent_aligned', gettext("Re-indent aligned?"), 'boolean', False, - category_label=gettext('SQL formatting'), + category_label=sql_formatting_label, help_str=gettext('If set to True, the indentations of the ' 'statements are changed, and statements are ' 'aligned by keywords.') @@ -735,7 +761,7 @@ def register_query_tool_preferences(self): self.spaces_around_operators = self.preference.register( 'editor', 'spaces_around_operators', gettext("Spaces around operators?"), 'boolean', True, - category_label=gettext('SQL formatting'), + category_label=sql_formatting_label, help_str=gettext('If set to True, spaces are used around all ' 'operators.') ) @@ -743,7 +769,7 @@ def register_query_tool_preferences(self): self.comma_first = self.preference.register( 'editor', 'comma_first', gettext("Comma-first notation?"), 'boolean', False, - category_label=gettext('SQL formatting'), + category_label=sql_formatting_label, help_str=gettext('If set to True, comma-first notation for column ' 'names is used.') ) @@ -751,7 +777,7 @@ def register_query_tool_preferences(self): self.wrap_after = self.preference.register( 'editor', 'wrap_after', gettext("Wrap after N characters"), 'integer', 4, - category_label=gettext('SQL formatting'), + category_label=sql_formatting_label, help_str=gettext("The column limit (in characters) for wrapping " "comma-separated lists. If zero, it puts " "every item in the list on its own line.") @@ -762,7 +788,7 @@ def register_query_tool_preferences(self): gettext("Tab size"), 'integer', 4, min_val=2, max_val=8, - category_label=gettext('SQL formatting'), + category_label=sql_formatting_label, help_str=gettext( 'The number of spaces per tab. Minimum 2, maximum 8.' ) @@ -771,7 +797,7 @@ def register_query_tool_preferences(self): self.use_spaces = self.preference.register( 'editor', 'use_spaces', gettext("Use spaces?"), 'boolean', False, - category_label=gettext('SQL formatting'), + category_label=sql_formatting_label, help_str=gettext( 'Specifies whether or not to insert spaces instead of tabs ' 'when the tab key or auto-indent are used.'