Skip to content

Improve query execution workflow, dataview models, and gettext formatting#3

Merged
gtripoli merged 34 commits intomainfrom
chore/gettext-brace-format-migration
Apr 27, 2026
Merged

Improve query execution workflow, dataview models, and gettext formatting#3
gtripoli merged 34 commits intomainfrom
chore/gettext-brace-format-migration

Conversation

@gtripoli
Copy link
Copy Markdown
Owner

This merge request consolidates several improvements across i18n, query execution, dataview handling, engine contexts, and the main UI workflow.

Main changes

  • migrate gettext strings to Python brace format
  • refresh translation catalogs after the i18n migration
  • add cancelable query execution and richer result metadata
  • improve the query editor workflow with multi-tab support and configurable shortcuts
  • add table execution flow and update related views
  • improve SQL autocomplete parsing, context detection, provider behavior, and test coverage
  • refactor DataView models with observable models and improve record-backed row handling
  • reuse the application icon registry and editor dialog factory in dataview UI
  • improve engine datatype alias mapping and result typing
  • support skip_before_connect / skip_after_connect behavior in engine context connections
  • move settings handling to helpers and restructure the settings key schema
  • replace the advanced cell editor with the column content dialog
  • preserve expanded tree state after failed connection attempts
  • update database action button state when options change
  • add MySQL/MariaDB table options support for row_format and convert_data
  • clean up engine contexts and expand related documentation
  • refresh project/docs files and wxFormBuilder layout artifacts

Why

These changes improve consistency in translation formatting, make query execution more robust and user-friendly, simplify parts of the UI/data model architecture, and strengthen engine-specific behavior and typing.

Notes for reviewers

  • the branch contains both feature work and refactoring
  • the i18n brace-format migration is the most visible cross-cutting change
  • query workflow and dataview changes are the main functional UI updates
  • translation catalogs and some project/generated files were refreshed accordingly

gtripoli added 30 commits March 12, 2026 17:19
AI-Assisted-By: Cline
AI-Contribution: 80%
Tracked-By: CodeShield AI
AI-Assisted-By: Cline
AI-Contribution: 80%
Tracked-By: CodeShield AI
AI-Assisted-By: Cline
AI-Contribution: 80%
Tracked-By: CodeShield AI
AI-Assisted-By: Cline
AI-Contribution: 80%
Tracked-By: CodeShield AI
AI-Assisted-By: Cline
AI-Contribution: 80%
Tracked-By: CodeShield AI
AI-Assisted-By: Cline
AI-Contribution: 80%
Tracked-By: CodeShield AI
AI-Assisted-By: Cline
AI-Contribution: 80%
Tracked-By: CodeShield AI
AI-Assisted-By: Cline
AI-Contribution: 80%
Tracked-By: CodeShield AI
AI-Assisted-By: Cline
AI-Contribution: 80%
Tracked-By: CodeShield AI
AI-Assisted-By: Cline
AI-Contribution: 80%
Tracked-By: CodeShield AI
AI-Assisted-By: Cline
AI-Contribution: 80%
Tracked-By: CodeShield AI
AI-Assisted-By: Cline
AI-Contribution: 80%
Tracked-By: CodeShield AI
AI-Assisted-By: Cline
AI-Contribution: 80%
Tracked-By: CodeShield AI
AI-Assisted-By: Cline
AI-Contribution: 80%
Tracked-By: CodeShield AI
AI-Assisted-By: Cline
AI-Contribution: 80%
Tracked-By: CodeShield AI
AI-Assisted-By: Cline
AI-Contribution: 80%
Tracked-By: CodeShield AI
…ialog

AI-Assisted-By: Cline
AI-Contribution: 80%
Tracked-By: CodeShield AI
AI-Assisted-By: Cline
AI-Contribution: 80%
Tracked-By: CodeShield AI
AI-Assisted-By: Cline
AI-Contribution: 80%
Tracked-By: CodeShield AI
…tion changes

AI-Assisted-By: Cline
AI-Contribution: 80%
Tracked-By: CodeShield AI
AI-Assisted-By: Cline
AI-Contribution: 80%
Tracked-By: CodeShield AI
…nt, style limit)

AI-Assisted-By: Cline
AI-Contribution: 80%
Tracked-By: CodeShield AI
- Add ROW_FORMATS constant to AbstractContext (empty), MySQLContext and MariaDBContext
- Add row_format field to MySQLTable/MariaDBTable; fetched from information_schema
- Add convert_data transient flag (compare=False) to control CONVERT TO CHARACTER SET
- Fix MySQLTable.alter_collation() signature to accept collation_name (was buggy)
- Add alter_row_format() to MySQLTable and MariaDBTable
- Wire convert_data and row_format into EditTableModel and MainFrameController
- Fix server_version stored as instance attribute in MySQL/MariaDB after_connect

AI-Assisted-By: Cline
AI-Contribution: 80%
Tracked-By: CodeShield AI
Clarify the distinct roles of _parse_type (DDL column string parsing),
_get_field_type_name (pymysql type code resolution), and
get_result_column_datatypes (query result metadata mapping) in both
MySQL and MariaDB contexts.

AI-Assisted-By: Cline
AI-Contribution: 80%
Tracked-By: CodeShield AI
Includes pending UI changes (views, fbp layout, database_options controller,
settings, dataview, PostgreSQL/SQLite context updates).

AI-Assisted-By: Cline
AI-Contribution: 80%
Tracked-By: CodeShield AI
AI-Assisted-By: Cline
AI-Contribution: 80%
Tracked-By: CodeShield AI
…d string literals

AI-Assisted-By: Cline
AI-Contribution: 80%
Tracked-By: CodeShield AI
AI-Assisted-By: Cline
AI-Contribution: 80%
Tracked-By: CodeShield AI
AI-Assisted-By: Cline
AI-Contribution: 80%
Tracked-By: CodeShield AI
AI-Assisted-By: Cline
AI-Contribution: 80%
Tracked-By: CodeShield AI
AI-Assisted-By: Cline
AI-Contribution: 80%
Tracked-By: CodeShield AI
AI-Assisted-By: Cline
AI-Contribution: 80%
Tracked-By: CodeShield AI
- Implement on_apply_record and on_cancel_record in MainFrameController
  (previously stubs in the base view); changes pending in NEW_RECORDS
  are now saved on Apply and discarded on Cancel
- Add do_apply_records and do_cancel_records to TableRecordsController
- Fix UnboundLocalError in _count_table_records: total_rows was left
  unassigned when dict(row) raised an exception
- Wrap _load_records_page and _update_records_label calls inside
  _on_records_count_complete with try/except to prevent unhandled
  exceptions crashing the app via wx.CallAfter

AI-Assisted-By: Cline
AI-Contribution: 80%
Tracked-By: CodeShield AI
- Remove broken link to ROADMAP.md (merged into PROJECT_STATUS in March)
- Refresh README "Recent updates" with latest features
- Bump PROJECT_STATUS last-updated date to 2026-04-27
- Add 7 entries to "Recently Added": autocomplete, table execution flow,
  row_format/convert_data, windows/main refactoring, ColumnContentDialog,
  database action buttons, tree explorer state preservation

AI-Assisted-By: Cline
AI-Contribution: 80%
Tracked-By: CodeShield AI
@gtripoli gtripoli merged commit 1bff87d into main Apr 27, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant