| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- TODO for next few days:
- - Layout manager that saves/restores user layout
- - Keeps position, size ands possibly docking information for every window
- (Main window probably needs to be handled specially)
- - At startup all windows register with it
- - Calling restore() will place all windows in proper positions
- - It will also set up hooks to those windows so it gets updates when they get moved/sized/docked
- - Project create/Project open window
- - Shows at the start of the editor
- - Also has hooks directly from File menu (Create project, Open project)
- - EditorPrefs class
- - Stores all of editor preferences, including layout information
- - Also keeps a list of all known projects
- - Menu bar:
- - File->Create project, File->Open project
- - Windows menu with a list of all windows
- - List gets populated easily so people can write plugin windows
- - Plugin windows should possibly also be able to assign themselves to other Menu item than Windows
- - Docking system
- - All open windows can be docked/unocked
- - Their layout data gets saved
- - The way I handle editor windows at the moment is pretty weird with alot of custom handling for resize/move
- - Attempt to get rid of that or at least dont use it until I have window look more fleshed out
- - Look at QSizeGrip for resizing
- - QStackWidget (or QStackLayout) for stacking and tabbed windows
- - Make sure entire interface is skinnable
- - Create a generic "Prefs" system that supports arrays and loading/saving to ini files
- - Using EditorPrefs is too cumbersome and it won't allow extensions to use it anyway
- Dock overlay widget colors need to be customizable
- Unique IDs for windows. Currently I don't guarantee IDs will be the same if user adds a window before I restore them from file.
- When restoring windows what happens why I try to restore an unloaded plugin?
- - A NullWindow?
- After I undock a window it needs to return itself to the default size
- - Allow widgets to specify default size
- WindowDockManager
- Checks if we're mousing over any dock widgets
- If not it checks if we're mousing over DynamicTabBar (in any open window)
- If we are it gets the polygons from DynamicTabBar and renders them
- Also gets the current polygon and highlights it
- Upon mouse release it find exactly at what index the mouse was released and adds the widget to the tab bar
- getWindowAtPosition doesn't consider if two or more windows are overlapping. It should return the front most
- Dragging window around occludes possible dock points. I need to make the window less visible while dragging.
|