Rather than relying on the parent to maintain the splitter sizes
and states, the GcSplitter remembers its own state and sizing.
This includes remembering if the children have been hidden via the
icon bar at the bottom of the splitter.
The icons are adjusted via utility function iconFromPNG()
which currently just adjusts the icon color to be a muted
gray as opposed to black.
This is the first pass at recreating the 'template' function
used by the cocoa image functions. Will add an emboss feature
later, but at least now they are less vibrant and when clicked
turn black giving a visual clue that they are clickable.
.. some cosmetic and tidy ups for the recent sidebar WIP update
from Damien. Just trying to get clean look before making the icon
bar look more like the one in XCode and make the icons use the
Cocoa "template" look.
Train view - race* - out of date and no used
Train view - SimpleNetwork - not used
Analysis view - WeeklySummaryWindow - not used
MainWindow - RideCalendar - deprecated 2 years ago
Because the image representation was stored in the pixmap
which was allocated on the stack -- it should be allocated on
heap since the underlying data is never actually copied.
This seems to fix the issue, but need to keep monitoring it!
Fixes#477.
A number of memory management errors fixed, no doubt there
are more lurking in there.
* CocoaInitializer now sets up an application wide NSAutoreleasePool
* Kickr now init/releases an NSAutoreleasePool for its thread
* Local autorelease pools in constructors etc have been removed
* Searchbox and Button no longer release in the constructor
The icon corruption seems to be improved (I think it is a memory
management issue) but has not been totally removed.
.. because it blocks the event loop that hosts the WF API
class. And we definitely want it to stay on the main event
loop along with the native WF classes and delegates.
.. because we didn't maintain the currentWindow when
showing blankstate pages the drag and drop functionality
didn't work.
This is kinda key when you have no videos and workouts, its
the simplest way of providing the files needed.
.. now closes train view blankstate when device added
and workouts have been imported.
.. and made the home and diary views have same buttons
as the analysis view. That may change in later releases
when we have planning functions.
The diary, home and analysis blank state screens will
now close if rides are added.
Still need to make the train view blank state screen
close when devices and workouts are added.
Set the default size of fonts and screens based upon the
screen size we're running on.
We may need to think about retrospectively adjusting the
font size for users that have not realised they can change
from the defaults (which may not be valid for their hardware).
Put a button on the scope bar to add a chart. This is more
intuitive than the right click menu. The style could be
better but ok for now.
Deprecated the right-click menu option since it is unintuitive
and hidden from the user (i.e. bad UX).
- Added drag and drop dialog and functionality
- if only 1 video/workout imported it is imported and selected
- if multiple they are imported with a dialog
- now shows any references in the scan function
The use of references to avoid making copies of videos is
a touch complicated -- the workflow could be friendlier.
Some fixups to recent update for the workout
library support;
- ergDB download now updates the DB
- mainwindow menu options names more consistent
- sort order in the video and workout list
- hooks for import/drag and drop
Will now write the importer for drag-n-drop and
import workouts menu option.