Skip to content

Feature/#50 tabs #51

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

Merged
merged 8 commits into from
Dec 1, 2017
Merged

Feature/#50 tabs #51

merged 8 commits into from
Dec 1, 2017

Conversation

bradyzp
Copy link
Member

@bradyzp bradyzp commented Nov 30, 2017

Merge new UI Tab Layout into develop.

This branch includes many formatting fixes to various files, primarily reformatting them to 80 char line-widths, also deleting old/deprecated code and comments for general cleanup.

Resolves #50

New tab functionality: Double click flight or create new flight to
display in its own tab.
Tabs have sub-tabs for future use displaying maps, transformations etc.

TODO: Implement close button on tabs, decide whether to destroy tab, or
hide to show again later.
Design new model based on QAbstractModel for Channel data selection
feature. New model enables customization of drag and drop, and
simplifies plotting updates.
Modified types.py and created new BaseTreeItem class that provides
implementation of AbstractTreeItem, without adding any additional
features like TreeItem. This allows the developer to create specialized
Tree Item classes with a default implementation for the basic
requirements, without including unnecesary features.
Merging local work on Channel model and types.py into tabs working
feature branch.
Add datamanager module, to act as a global interface to
import/export/load/save data within the project.
The datamanager is initialized once and then can be used by any other
module in the project by calling datamanager.get_manager(). This
simplifies the retrieval of data from various locations in the code, as
each caller must only know the UID and type of data they need to
retrieve, as opposed to storing references to the project to utilize its
load method.

TST: Basic test suite created for datamanager - more comprehensive tests
need to be added as functionality is added to the module - plan to
support the storing of metadata and other formats such as JSON, CSV.
A sprawling commit that lays the foundation for the UI as we proceed.
UI Tabs are now mostly functional, each Flight is displayed in its own
tab, and the contextual tree model (below the project tree) is
automatically switched/updated as the user selects between tabs and
sub-tabs.
This commit and the preceeding commit also introduce the datamanager
module, which was necessary at this point to reduce the complexity of
calls between the Flights/Tabs and Project. Code in various files has
been updated to utilize the new datamanager for the import/retrieval of
DataFrames.
Fix erroneous behavior of datamanager if project directory is moved.
Data manager now constructs paths to data files based on its
initialization path.
General code cleanup
Re-implemented state save/load into Flight tab code, so that the plot
tab will remember and re-draw plot/lines when opened.
Improvements and tests added for basic functionality of DataManager and
JSON registry component - ability to store/retrieve HDF5 files from
module level instance.
Added ability to close tabs in tab interface.
Cleaned up and documented code in various files.

TODO - should tab widgets be kept in memory for quicker redraw if reopened?
@bradyzp bradyzp added this to the Initial Release milestone Nov 30, 2017
@bradyzp bradyzp requested a review from cbertinato November 30, 2017 15:48
@bradyzp bradyzp merged commit eadd28c into develop Dec 1, 2017
@bradyzp bradyzp deleted the feature/#50-tabs branch December 1, 2017 15:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Tab/Plot Interface Redesign
2 participants