Migration to PyQt6#20
Merged
Merged
Conversation
Replaced PyQt4 imports with Extensions.qt_bindings for consistency. Updated screen geometry retrieval in Pcode, WritePad, and About classes. Changed margin settings to contentsMargins for better layout management. Updated dialog execution methods to use exec() instead of exec_() for compatibility with newer Qt versions.
Replaced PyQt4 imports with Extensions.qt_bindings for consistency across the codebase. Updated margin settings to use contentsMargins for improved layout management. Changed dialog execution methods to use exec() instead of exec_() for compatibility with newer Qt versions. This enhances the overall maintainability and performance of the UI components.
Migrate the codebase from PyQt4 to PyQt6 via the qt_bindings compatibility layer (enum flattening, signal/slot, QScintilla scoped enums, dialog/return value shims) and fix Python 3.11 issues in vendored libs (cx_Freeze opcodes, autopep8/pep8 getargspec, re.LOCALE). Add scripts/exercise_editor.py, a headless (offscreen) smoke test that exercises project create/load, editor, run/output, completion, find/replace, find-in-files, settings, library, project view, rope rename, snippets, and export. Wire it into GitHub Actions (.github/workflows/smoke.yml). Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Tokenize StyleSheet into Light/Dark palettes and add a Theme (Light/Dark/System) setting with live switching plus a matching QPalette so native surfaces follow the theme. Drop blurry PNG sub-control arrows/close icons so Qt draws crisp, HiDPI-friendly native ones. Add a Ctrl+Shift+P command palette (fuzzy filter, keyboard nav) exposing project/navigation/theme/about commands. Polish the top bar with an app logo + title and button tooltips. Start screen now uses a cross-platform fixed font, an empty-state for recent projects, and theme-aware colors. Fix the project-tree selection row-jump (drop font resize) and replace the red menu hover with the accent color. Extend the headless smoke test with command-palette and theme guards. Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
…nfig Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
…lier Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
…dling - Added a method to retrieve the active project window in Pcode. - Enhanced command building to include project-specific actions based on the active window. - Refactored settings access in various extensions to utilize a new boolean utility function for improved readability and consistency. - Updated GitPanel integration in the EditorWindow for better version control support. - Introduced debug capabilities in the RunWidget for enhanced debugging experience. Co-authored-by: Cursor <cursoragent@cursor.com>
Migrate editor session to JSON via SessionData, finish bool setting reads across editors, rename venv package to Pvenv, expand command palette and git panel, add debugpy wait-for-client, fix snippet drag-drop, and add regression tests. Co-authored-by: Cursor <cursoragent@cursor.com>
Persist splitter geometry to Data/windata.json, add bootstrap_bool helper, migrate CommandPalette and Notification to direct PyQt6 imports, and install pytest-timeout in CI workflows. Co-authored-by: Cursor <cursoragent@cursor.com>
Smoke tests pass (28 steps). Migrated StackSwitcher, BookmarkWidget, BusyWidget, ViewSwitcher, ZoomWidget, GotoLineWidget, and Messages to direct PyQt6 imports; auto-fixed 15 unused imports; restored QtXml in qt_bindings for legacy XML migration paths. Co-authored-by: Cursor <cursoragent@cursor.com>
New projects write project.json and projectdata.json; session restore is extracted; git panel, command palette, and assistant checks are improved with regression tests. Co-authored-by: Cursor <cursoragent@cursor.com>
…tes. Direct PyQt6 on Pcode, EditorWindow, FindInFiles, FileExplorer, and NewProjectDialog; JSON-only window layout; session/tab_io helpers; git and debug UX; F841 linting; CI freeze job on workflow_dispatch. Co-authored-by: Cursor <cursoragent@cursor.com>
Rope profiles persist as profile.json with XML mirror; EditorTabWidget delegates file open to tab_io; WritePad, About, EditorSplitter, VerticalSplitter, and BuildStatusWidget use direct PyQt6. Co-authored-by: Cursor <cursoragent@cursor.com>
Centralize cx_Freeze profile I/O in BuildProfile, extract EditorTabBar, and migrate Outline, Tasks, MiniMap, and Diff to direct PyQt6 imports. Co-authored-by: Cursor <cursoragent@cursor.com>
Migrate editor tab bar, snapshots, tab_io, build UI, project manager dialogs, profiler, and progress widget off qt_bindings. Co-authored-by: Cursor <cursoragent@cursor.com>
Migrate error/pep8 assistant, run console, and rope refactor UI off qt_bindings. Co-authored-by: Cursor <cursoragent@cursor.com>
Migrate editor core and settings/color-scheme modules off qt_bindings with QtPrintSupport and QDomDocument fixes. Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Finishes the project-manager and library stack migration so qt_bindings is only needed for font_metrics_width and the smoke harness. Co-authored-by: Cursor <cursoragent@cursor.com>
Extract font_metrics and file_dialog_utils, fix enum/import issues exposed without the shim, and add test_no_shim_import guard. Co-authored-by: Cursor <cursoragent@cursor.com>
Delete the compat shim, archive peel scripts, fix remaining PyQt6 enum issues exposed without it, and save project persistence as JSON only. Co-authored-by: Cursor <cursoragent@cursor.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Migration to PyQt6