Commit graph

79 commits

Author SHA1 Message Date
Dirk Hohndel
db988aa62b CSV import: first steps to enable the preset types again
With the new infrastructure colum numbers are 0 based, so the indices had
to change.
This commit also adds the column names for sample based formats (and ends
up re-indenting parts of that code).

This doesn't make things work, yet, but it's a step in the right
direction.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-07 16:59:42 -08:00
Dirk Hohndel
a51110b0d0 CSV input UI: if we detect columns, set type to "manual" for now
We still need to re-implement the other presets.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-07 15:11:54 -08:00
Dirk Hohndel
e3aebfdd66 CSV import UI: Minor update to strings
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-07 15:09:24 -08:00
Dirk Hohndel
b08b32af2c CVS import UI: mark the column names in blue as well
And make the bubbles slightly larger.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-07 13:00:16 -08:00
Dirk Hohndel
02103978ec CVS import UI: mark the drop row in blue
That way it is distinct from the rest.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-07 13:00:06 -08:00
Dirk Hohndel
2f5d4720e9 CVS import UI: better message if some columns were matched
If we automatically matched the columns this might already be correct. So
the standard text is confusing.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-07 12:41:06 -08:00
Tomaz Canabrava
c4b7ed5444 CSV Import UI: Prettifications, hide headers, code cleanup.
Just a few cleanups.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-07 12:33:30 -08:00
Tomaz Canabrava
11fc888cdc Fix moving columns around when one of the columns is empty
I used to compare strings, but since there can be more than one empty
column, this was a very sad choice, now I'm comparing indexes.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-07 12:33:12 -08:00
Tomaz Canabrava
3b654438b6 Draw a nice rounded rect around the avaliable column names
This drawns a nice rounded rect around the avaliable column names, using
antialiasing.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-07 12:32:15 -08:00
Tomaz Canabrava
ce9d972ffa Give the items a bit more spacing / enable the delegate
Enable the new delegate on the view, and give the items a bit more
spacing, so we can draw things around them.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-07 12:31:52 -08:00
Tomaz Canabrava
8531cec100 Add delegate skeleton for the drag columns
This new class is the responsible to draw the columns that can be dragged
from the top bar to the bottom one.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-07 12:30:25 -08:00
Dirk Hohndel
1c06252c00 CVS import UI: use my own match function
This makes the code simpler and allows us to do a much better job matching
the column names.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-07 12:27:20 -08:00
Dirk Hohndel
816367eb06 CSV import UI: First step towards recognizing column headers
This doesn't do a good job of matching the titles, but it works for some
of them.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-07 11:24:57 -08:00
Dirk Hohndel
481de7da74 CSV import dialog: try to guess the separator based on the file
This is taking a very simplistic approach. It picks the predominant
potential separator. If there is no clear winner, it uses the UI default
and makes the user pick (and either way, this can always be overwritten by
the user).

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-07 08:57:08 -08:00
Dirk Hohndel
f42b986474 Adjust capitalization to our style
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-06 20:21:51 -08:00
Dirk Hohndel
e544796199 Add missing divemaster field to the manual import
No idea why I didn't notice earlier that this was missing.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-06 20:19:45 -08:00
Dirk Hohndel
5a4d85bf7c Fix crash when importing CSV that requires change of separator
The dialog defaults to tab; if a file is indeed comma separated and one
switches to that, data() could be called on a higher index before the
model is re-populated.

I'm a bit surprised why index.isValid() doesn't catch this, but the manual
check appears to work.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-06 19:53:49 -08:00
Tomaz Canabrava
9511ee0294 Do not allow the drop target to erase an old column
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-06 19:38:56 -08:00
Tomaz Canabrava
a96e0e1ec1 Fix moving columns
Qt has a very bad habit of getting the inner widget instead of the outer
one.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-06 19:38:50 -08:00
Tomaz Canabrava
6746b73d85 Remove data if it was correctly moved to the upper model
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-06 19:38:42 -08:00
Tomaz Canabrava
1ba08e2fec Make it possible to move from top to bottom
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-06 19:38:40 -08:00
Tomaz Canabrava
59fc5cecb7 Add the code to actually make it possible to move columns
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-06 19:38:38 -08:00
Tomaz Canabrava
fd41ff4ab9 Start to make it possible to move columns around
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-06 19:38:37 -08:00
Tomaz Canabrava
325f47c8d8 Add missing returns
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-06 19:38:35 -08:00
Tomaz Canabrava
8a230f9145 Remove drag operations from the 'From' widget
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-06 19:38:30 -08:00
Tomaz Canabrava
e3fbfe5498 Remove pesky QDebug that snook in
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-06 19:38:28 -08:00
Tomaz Canabrava
555fd979cb Port the code that actually parses the CSV to the new system
Change the QWidget based approach to the Model based approach, using the
result QStringList for finding if we have the depth or the time of some
specific column.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-06 19:38:19 -08:00
Tomaz Canabrava
f48065ac3c Do not accept drops from outside of subsurface
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-06 19:38:16 -08:00
Tomaz Canabrava
909be75113 Re-add the string to the avaliable models if drag cancelled
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-06 19:38:12 -08:00
Tomaz Canabrava
9042abc68c Set data done, drag & drop works
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-06 19:38:10 -08:00
Tomaz Canabrava
7d53299831 Implement most of the drag operation
Only thing missing is the Drop.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-06 19:38:08 -08:00
Tomaz Canabrava
4e7bd86e07 Fix constructor
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-06 19:38:04 -08:00
Tomaz Canabrava
af13ba7d44 Add setData() to the ColumnResult model
This way the drop target will work when implemented.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-06 19:38:00 -08:00
Tomaz Canabrava
74596cc193 Add the data() method
Now we can correctly visualize the file data, and changing
the separator will update on the fly.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-06 19:37:57 -08:00
Tomaz Canabrava
58e21a6160 Add the setColumnValues() method
This method populates the model with a few lines of the CSV data to help
the user to define what each column is.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-06 19:37:48 -08:00
Tomaz Canabrava
79e81d70ec Implement LoadFileContents
This will get the first 10 lines of data, try to separate
them using the separator specified, and then try to make
things display correctly on the table.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-06 19:37:46 -08:00
Tomaz Canabrava
ba30e938b3 Another skeleton: LoadFileContents
Also, do not pass QStringLists by pointer, uneeded.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-06 19:37:44 -08:00
Tomaz Canabrava
f1b90813cf Set the model on the table view, one more skeleton
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-06 19:37:42 -08:00
Tomaz Canabrava
858fe5588a Add skeleton code for the model that will have the result of columns
This model will show some columns and the user will
need to provide the correct information for each of them

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-06 19:37:40 -08:00
Tomaz Canabrava
aa33ae9526 Add skeleton code for the table view that will accepts drops
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-06 19:37:37 -08:00
Tomaz Canabrava
cedf339e1e Show the pixmap being dragged
This way we know that we got the correct drag thingy.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-06 19:37:35 -08:00
Tomaz Canabrava
b7e27e3141 Re-add the string removed upon drop operation
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-06 19:37:27 -08:00
Tomaz Canabrava
6149004f47 Remove the string from the model while dragging
We are not correctly readding it yet - be patient.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-06 19:37:23 -08:00
Tomaz Canabrava
81f2ee5892 More DragDrop skeletons
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-06 19:37:20 -08:00
Tomaz Canabrava
0a1908137b Start to drag the correct values
This piece of code starts a drag and moves around data, it does nothing
with it yet.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-06 19:35:12 -08:00
Tomaz Canabrava
2034508c07 Add class skeleton that will handle the drag starts
This class will handle the drag 'n drop "drag" part.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-06 19:35:03 -08:00
Tomaz Canabrava
d2a4cd9965 Display the list of column names on the ListView
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-06 19:34:56 -08:00
Tomaz Canabrava
7bc93d4242 Add data, row count and the string list that populate the model
I know that there is a QStringListModel, but that doesn't
have add and remove methods, and thus I cannot use it. ;)

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-06 19:34:54 -08:00
Tomaz Canabrava
3d8e2d0643 Skeleton code for the model that has the columns information
Just the skeleton, then start doing stuff.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-06 19:34:51 -08:00
Tomaz Canabrava
48775c530e Clean a lot of code for a new and improved CSV import dialog
This mostly cleans out stuff that is going to be uneeded.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-06 19:34:45 -08:00