GSoC 2015 - Introduction

Marcos Cardinot mcardinot at gmail.com
Thu Mar 26 12:35:48 PDT 2015


2015-03-26 11:55 GMT-03:00 Martin Long <martin at longhome.co.uk>:

>
>
>> Actually, the type/category stuff will be essential to make Subsurface
>> aware when some specific field is required... eg. is it a camera? so, let's
>> include a field to store the resolution (of course, it's just an example -
>> I think that we should avoid having specific fields, since users could add
>> extra info in a kind of 'comments' field - however, some equipment must
>> have specific fields - like cylinder) ...
>>
>
> Yeah, avoid where possible. I don't think there's need for anything except
> some notes for *most* items.  It might be useful later down the line for
> reporting capabilities. "Show me all dives where I used my Buddy BCD" etc.
>
>
>> I got your point and I also would love to have more comments about it.
>> But as I mentioned above, it would not be hard to know that a specific
>> equipment requires specific fields - so it would work fine anyway, in
>> addition, it seems to be much more consistent (all equipment following the
>> same structure).
>>
>
> So perhaps we go along the line of including cylinders, see what the
> implementation looks like, and we could revert to the existing system if we
> need to.
>
> Also think about migration of existing Cylinder/weights/suit data.
>

Yeah, it's also very important to have existing logs working fine with this
new feature.



I have summarized some of the main GUI aspects below. Please, let me know
if I'm in the right track (or not - what's wrong?)

I don't know if users and developers are happy with the idea of having a
grid view. But it seems that the right thing to do is to start the project
using table views. Then, we could work to implement the grid_view... so
users could be able to switch between views (table or grid)... (?)

----------

Graphical User Interface

We will need to have two different GUI. “Asset Manager”, where the user
will handle all their inventory and the “Equipment tab”, which will show
the equipment took on a dive.

- Asset Manager

In the Asset Manager panel we will show all pieces of equipment. The users
would be able to add new items and edit their key properties, including
adding a photo of the equipment if it is desired. Users could also keep
track of when an equipment was last serviced, and when it is due. This is
also a great place to keep track of which elements were used on a
particular dive, and when it needs to be serviced.

Some kinds of equipment can have an extra field to store a specific data,
which can be set to a default value. These fields can be edited directly in
the “Equipment tab”.

Users should be able to sort items by name, manufacturer or type.

Users should be able to create new groups of items.

-- Asset Manager :: grid view

It would looks like the “MacDive” view (please, see screenshot above),
where we would have all items and groups being displayed in a grid.

It could be implemented using QListWidgets [2] - they have drag and drop
events and it wouldn't be hard to get it working over QListWidgets (eg.
from equipment_view to group_view).

#1) how to add an equipment
a1 - double click in a white space OR
a2 - context menu -> ‘add equipment’
b - dialog box appear - then, user can fill the fields and save [*]
c - new equipment will be displayed on the grid
[*] this could be a new window or a “bottom panel” (insed the Asset Manager
dialog)

#2) how to edit an equipment
a1 - double click the equipment OR
a2 - context menu -> ‘edit equipment’
b - dialog appear - (save as #1)

#3) how to remove an equipment
a - context menu -> ‘remove equipment’
b - it is being used somewhere? b1 : b2;
b1 - warning - it cannot be removed - do you want to disable this item?
b2 - remove item

#4.1) how to create a group
a - select equipments (one or more)
b - context menu -> ‘create group’
c - type the groups name
d - the group appear in the ‘groups grid view’

#4.2) how to create a group
a - open context menu in the ‘groups grid view’ -> ‘create group’
b - type the groups name
c - the group appear in the ‘groups grid view’

#5) how to add items in a group
a - drag and drop item in the group

#6) how to add items in a group
a1 - double click the group OR
a2 - context menu -> ‘edit group’
b - dialog box appear (it will contains only two things - field with groups
name + simple table view with ‘name|manufacturer|type|checkbox’)
c - selected items will be in the current group...

-- Asset Manager :: table view

We could have two table views: ‘equipment_table_view’ and
‘groups_table_view’. They could be placed side by side as well.

Users should be able to choose (checkbox) which columns they wanna see.

It is a simpler model. In this case we could display all data in columns -
where users could edit them directly in the table (exactly as we are doing
now with cylinders and weights).

‘equipment_table_view’
As discussed above, some equipment could require specific fields - in this
case we could use a dialog box OR a “bottom panel” - as it was suggested in
the grid_view above…

‘groups_table_view’
It would show only three columns (name | number of equipments | number of
dives using the group) - procedure #6 would be the same for this case.

- Equipment (tab)

On a dive, the user will indicate which pieces of equipment or which groups
of equipment they used on that dive. For this task they should be able to
pick items from the Asset Manager. The user must be able to select as many
equipment or groups as necessary.

In the Equipament panel, we will never show groups itself. If the user pick
a group, Subsurface will automatically ungroup it, displaying/listing each
equipment in the tab. It would enable them to unselect a specific item
which was not used on a specific dive, without having to pick one by one.

For example, imagine that we have the following group of equipment:
Group_Name:
-ItemA
-ItemB
-ItemC
-ItemD

Now, imagine that on a specific dive, the user did not use the ‘Item B’
only. So, they could simply pick the ‘Group_Name’ and remove the ‘Item B’
from the list. It is a much more simple and intuitive practice than having
to pick all other items one by one.

-- EquipmentTab :: grid view

It will looks like the AssetManager::equipment_grid_view, the difference is
that users would be able to only edit the configurable fields (if any) and
any modification will just affect the current dive.

#1) how to add an equipment/group
a) drag and drop from AssetManager

#2) how to remove an equipment from the grid
a) context menu -> ‘remove’

-- EquipmentTab :: table view

It will looks like the AssetManager::equipment_table_view. Also,
modifications will only affect the equipment for the current dive.

#1) how to add an equipment
a) add blank row
b) select type
c) select name

#2) how to add a group
a) click on 'add group'
b) select group

#3) how to remove an equipment
a1) click on an icon (as we do now in ''cylinders') OR
a2) context menu-> remove
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.subsurface-divelog.org/pipermail/subsurface/attachments/20150326/0f9e76a9/attachment.html>


More information about the subsurface mailing list