Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Replace binary tree to allow more that two splits per node #212

Draft
wants to merge 30 commits into
base: release-0.15
Choose a base branch
from

Commits on Nov 25, 2023

  1. Bump crate version

    Adanos020 committed Nov 25, 2023
    Configuration menu
    Copy the full SHA
    2b77fa0 View commit details
    Browse the repository at this point in the history

Commits on Dec 29, 2023

  1. Make all fields of a tree private

    -The DockState can use the method on the tree and does not need
    to reach into the fields of a tree
    LennysLounge committed Dec 29, 2023
    Configuration menu
    Copy the full SHA
    e031cc5 View commit details
    Browse the repository at this point in the history

Commits on Dec 30, 2023

  1. Move node index methods into the tree

    - These operations are only possible on a binary tree and will
    have to have access to the tree going forwards
    LennysLounge committed Dec 30, 2023
    Configuration menu
    Copy the full SHA
    e0ba5c6 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    c043d22 View commit details
    Browse the repository at this point in the history
  3. Make the tree non dependent on the binary tree

    - Nodes are still stored in a Vec but the position and order of
    the nodes no longer follows that of a binary tree.
    A node still only allows for a left and right node. So in practice
    it is still technically a binary tree. The implementation however
    no longer relies on this fact and should make further changes
    easer.
    
    - A node can no longer be split on its own.
    LennysLounge committed Dec 30, 2023
    Configuration menu
    Copy the full SHA
    a64ecdf View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    b5c023e View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    d7dddb1 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    7e8613e View commit details
    Browse the repository at this point in the history
  7. Use if let

    LennysLounge committed Dec 30, 2023
    Configuration menu
    Copy the full SHA
    1a42d66 View commit details
    Browse the repository at this point in the history
  8. Add changelog

    LennysLounge committed Dec 30, 2023
    Configuration menu
    Copy the full SHA
    ea84598 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    5e9b23b View commit details
    Browse the repository at this point in the history

Commits on Dec 31, 2023

  1. Keyboard focus fixes (Adanos020#211)

    * Fix crash after calling `DockState::remove_tab`. (Adanos020#208)
    
    * Remove surface after removing the last remaining tab, if the surface isn't `Main`.
    
    * Add explicit panic in `Tree::remove_leaf` if the `Tree` is empty.
    
    * Bump patch version, update changelog.
    
    * Include instructions on how to run examples in Readme. (Adanos020#209)
    
    * Fix keyboard focus not working inside `DockArea`s
    
    * Add visual indicators when tab buttons are focused
    
    * Allow current tab to be switched using the keyboard
    
    * Remove extra focusable areas
    
    I removed focus from two widgets that are not supposed to be focusable.
    Also, I added highlighting to the separators when they are focused
    because apparently I can't remove the ability to focus them without
    breaking the ability to drag the separators.
    
    * Separators can now be moved with the arrow keys
    
    * Add highlighting to active tabs that are keyboard focused
    
    * Update changelog
    
    * Add tab styles for keyboard-focused tabs
    
    * Don't move separators unless Ctrl or Shift is down
    
    This is so that using the arrow keys to change the keyboard focus will
    still work normally.
    
    * Clippy
    
    ---------
    
    Co-authored-by: Adam Gąsior <[email protected]>
    white-axe and Adanos020 authored Dec 31, 2023
    Configuration menu
    Copy the full SHA
    ed990ed View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    b002a31 View commit details
    Browse the repository at this point in the history

Commits on Jan 8, 2024

  1. Bump crate version

    Adanos020 committed Jan 8, 2024
    Configuration menu
    Copy the full SHA
    e4e5e19 View commit details
    Browse the repository at this point in the history
  2. Keyboard focus fixes (Adanos020#211)

    * Fix crash after calling `DockState::remove_tab`. (Adanos020#208)
    
    * Remove surface after removing the last remaining tab, if the surface isn't `Main`.
    
    * Add explicit panic in `Tree::remove_leaf` if the `Tree` is empty.
    
    * Bump patch version, update changelog.
    
    * Include instructions on how to run examples in Readme. (Adanos020#209)
    
    * Fix keyboard focus not working inside `DockArea`s
    
    * Add visual indicators when tab buttons are focused
    
    * Allow current tab to be switched using the keyboard
    
    * Remove extra focusable areas
    
    I removed focus from two widgets that are not supposed to be focusable.
    Also, I added highlighting to the separators when they are focused
    because apparently I can't remove the ability to focus them without
    breaking the ability to drag the separators.
    
    * Separators can now be moved with the arrow keys
    
    * Add highlighting to active tabs that are keyboard focused
    
    * Update changelog
    
    * Add tab styles for keyboard-focused tabs
    
    * Don't move separators unless Ctrl or Shift is down
    
    This is so that using the arrow keys to change the keyboard focus will
    still work normally.
    
    * Clippy
    
    ---------
    
    Co-authored-by: Adam Gąsior <[email protected]>
    white-axe and Adanos020 committed Jan 8, 2024
    Configuration menu
    Copy the full SHA
    c2066c5 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    66865fd View commit details
    Browse the repository at this point in the history
  4. Correctly set the focused node when moving a node

    - When a node is removed this might cause a sibling of the node
    to be moved. If the sibling is focused this caused the focused node
    to point to an stale node.
    LennysLounge committed Jan 8, 2024
    Configuration menu
    Copy the full SHA
    b0b60a3 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    3f8a797 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    fd12ee3 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    9554d52 View commit details
    Browse the repository at this point in the history
  8. A node now always has a rect

    - Make the breadth first index iterator public
    LennysLounge committed Jan 8, 2024
    Configuration menu
    Copy the full SHA
    05594fb View commit details
    Browse the repository at this point in the history

Commits on Jan 9, 2024

  1. Configuration menu
    Copy the full SHA
    766eacd View commit details
    Browse the repository at this point in the history

Commits on Jan 20, 2024

  1. Configuration menu
    Copy the full SHA
    7742823 View commit details
    Browse the repository at this point in the history

Commits on Feb 11, 2024

  1. Configuration menu
    Copy the full SHA
    7a25e9b View commit details
    Browse the repository at this point in the history
  2. Preliminary merge 0.11

    LennysLounge committed Feb 11, 2024
    Configuration menu
    Copy the full SHA
    34f159a View commit details
    Browse the repository at this point in the history
  3. Fix these todo

    - The exact behavior of these functions still need to be discussed.
    LennysLounge committed Feb 11, 2024
    Configuration menu
    Copy the full SHA
    5ad83e4 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    63213ee View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    8b3d088 View commit details
    Browse the repository at this point in the history
  6. Remove surface empty

    LennysLounge committed Feb 11, 2024
    Configuration menu
    Copy the full SHA
    6c29d1e View commit details
    Browse the repository at this point in the history
  7. Fix doc comments

    LennysLounge committed Feb 11, 2024
    Configuration menu
    Copy the full SHA
    391f723 View commit details
    Browse the repository at this point in the history