Added a new class StripToolPlot--it's supposed to manage all of the plot and pv series info.
Added check to ensure that timer updates in AMActionRunner(BottomBar)CurrentView test whether or not a list action has a valid currentSubAction().
Added two new classes--StripToolPVListModel and StripToolSeries. The list model seemed like a good idea because it could take care of manipulating the qstandarditemmodel sort of away from the view, which is in StripTool. I created StripToolSeries because it seemed like an easy way to make units a property of the selected plot series, so they can be displayed on the plot
The units now display on the plot when the plot is selected (if they have been included when the pv is first added).
Merge branch 'master' of https://github.com/acquaman/acquaman
Re-implemented the show/hide feature for the plot.
The pv name now appears on the plot when a particular line is selected.
When the plot is first opened, the axes names are hidden.
So! A lot has changed. The project has been restructured quite a bit. The basic data class is the StripToolPV, which contains all information related to a particular pv: its name, units, description, whether or not it's updating, whether or not it's shown/hidden on the plot, its data, its series, the number of values to display on the plot, etc etc. The pv objects are collected into StripToolModel, which maintains a QList of StripToolPVs and provides pv information. The contents of the model are displayed in the project window through QListView, which displays each pv by description and allows the user to select, right-click, edit, show/hide, pause, resume, delete, etc. If a pv is checked on the list view, it is shown in the plot and vice versa. Hmmm what else? I've changed a lot about how the classes communicate information, and I think it's for the better. It looks pretty rough right now, and I'm trying out different ideas for how to add single and multiple pvs at a time, so the add pv dialog is a bit of a mess, but the basic functionality is there. The project should be buildable and runable. Ta da!
Updating product backlog
I've simplified the 'add pv' process by creating quick controls that can add, access, edit, and delete pv information in one place.
I'm working on a bunch of bugs with the recent changes: some of the ListView controls don't work as they should, I don't think that pvs are deleted properly, plot selection doesn't seem to work, and still working on exporting data (to name a few). Project here is buildable and runable, but not functional.
Merge branch 'master' of https://github.com/acquaman/acquaman
The show more/less commands seem to work if the body of the ListView::showAllSelection() is commented out entirely. I... have no explaination for this. Yet. Here, all 'show all' code has been commented out throughout the project and the other shows appear to work as they should. Project is buildable and runable.
The 'show all' feature has been removed from the project entirely; all actions in the pv list view context menu all work as they should. I think the usefulness of having a 'show all' feature is replaced with a new 'edit pv' dialog that supports editing multiple pvs at once. Here, the user can edit the properties that a bunch of pvs may have in common--units, # of points displayed. Project is buildable and runable.
(Reimplement) Selecting a series on the plot will now cause its units to be displayed, if they have been set. Project is buildable and runable.
Attempting to implement an indirect link between the plot and the list view that will cause a plot selection to highlight the corresponding pv in the list view (and vice versa). About to make some changes to how items are stored in the model (to how they should be) so that this will work. Project is buildable and runable.
It's pretty messy, but I've implemented a preliminary version of pv 'remembering'--if 'activePVs.txt' file exists in the saveDirectory_ specified in StripToolView, then a dialog appears on application startup asking the user whether or not they'd like to reload previous pvs. Project is buildable and runable.
Working on saving pv units and description for reloading later, but not done yet.
PV names, descriptions, and units are saved and can be reloaded the next time the application is opened.