Commit graph

2270 commits

Author SHA1 Message Date
Dirk Hohndel
06d296a17d Improve the text labels in the profile
Only 1 decimal, please.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-05-10 21:07:49 -07:00
Amit Chaudhuri
97a044d41f Tweaks to maintab
Align statistics tab labels as per infotab.

Amend helper function to show degree symbol for temp measurements.

Change order of member initialisation list to match order of decl
(ProfileGraphicsView::ProfileGraphicsView)

Signed-off-by: Amit Chaudhuri <amit.k.chaudhuri@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-05-10 16:01:17 -07:00
Dirk Hohndel
1245c232db Merge branch 'fixCrash' of https://github.com/tcanabrava/subsurface into Qt 2013-05-10 11:59:17 -07:00
Dirk Hohndel
719ce1bab3 Merge branch 'fixCrash' of https://github.com/tcanabrava/subsurface into Qt 2013-05-10 11:55:15 -07:00
Tomaz Canabrava
ad8f96cd6e Crash fixed on clicking on the canvas while no dive is loaded.
Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-05-10 15:52:06 -03:00
Dirk Hohndel
e69dbebf21 Make nextDC and previousDC work and assign shortcuts
Cursor right and left now work again to switch between divecomputers.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-05-10 10:49:00 -07:00
Tomaz Canabrava
56c4cced53 Fixed loading the first dive via command line on the profile.
Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-05-10 10:49:00 -07:00
Tomaz Canabrava
1fec7d849c Fixed Zoom and Positioning of the Ruler Items
The items are still being placed far from each other when
zooming in - I need a bit of help with the math for that.

Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-05-10 10:48:37 -07:00
Dirk Hohndel
fe6237b273 Implement the get_screen_dpi function
This is sadly known to be incorrect on most systems. But it's as incorrect
as it was on Gtk so should work equally well to get roughly the right
sizes for printing - once we implement printing, that is :-)

Also removed a qDebug that snuck in in commit 6fc4d72079dd ("Enable
defautl_filename in settings").

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-05-10 10:47:37 -07:00
Dirk Hohndel
c129902793 Fix some compiler warnings
Passing the alignment as int instead of float or double was actually a bug
as CENTER is defined as (-0.5) ...

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-05-10 10:47:37 -07:00
Dirk Hohndel
3e22e388e9 Implement the get_screen_dpi function
This is sadly known to be incorrect on most systems. But it's as incorrect
as it was on Gtk so should work equally well to get roughly the right
sizes for printing - once we implement printing, that is :-)

Also removed a qDebug that snuck in in commit 6fc4d72079dd ("Enable
defautl_filename in settings").

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-05-10 09:24:06 -07:00
Tomaz Canabrava
b3b1b3f58f Change the plot text so it receives a QPointF instead of x,y, and a Parent
Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-05-10 13:03:16 -03:00
Dirk Hohndel
bfef1d0219 Fix some compiler warnings
Passing the alignment as int instead of float or double was actually a bug
as CENTER is defined as (-0.5) ...

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-05-10 08:59:09 -07:00
Tomaz Canabrava
9a40333067 Fix showing the stuff on the canvas in the right positions.
Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-05-10 08:19:38 -07:00
Tomaz Canabrava
ea5353025f Only drag the tooltip panel when not zooming.
Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-05-10 08:16:00 -07:00
Tomaz Canabrava
2052e44ba1 Fix Tooltip Positions, code cleanup
Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-05-10 11:07:44 -03:00
Tomaz Canabrava
93d3af768b Uses the correct rectangle to englobe the profile grid.
Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-05-10 10:30:24 -03:00
Dirk Hohndel
ed6a54f506 Enable defautl_filename in settings
We don't have a UI to set it, yet, so you have to manually set it in the
config file, but once you do that it works...

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-05-09 21:37:21 -07:00
Thiago Macieira
aea8493165 Add a make rule (creator-files) that creates files for using Qt Creator
Qt Creator cannot import Subsurface directly because our buildsystem
is not any of the three that it understands (qmake, cmake,
autotools). So, instead, we can create the files Creator uses for
"Other Project" projects.

The files are:
 - subsurface.config:   the #defines from the command line (-D args)
 - subsurface.creator:  an XDG Desktop-style file with Creator settings
 - subsurface.files:    the list of source and header files
 - subsurface.includes: the include paths (-I args)

They are also added to .gitignore, alongside the *.user file that
Creator uses to store per-user settings (editor configuration).

Signed-off-by: Thiago Macieira <thiago@macieira.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-05-09 18:20:34 -07:00
Thiago Macieira
45afd712e8 Add a "distclean" target to make.
Right now, it does the same as confclean

Signed-off-by: Thiago Macieira <thiago@macieira.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-05-09 18:20:01 -07:00
Tomaz Canabrava
acdb5d97eb The Zoom is working just like the GTK Version.
This code enables Zoom in / Out with the Wheel,
and it also enables panning by moving the mouse around.

Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-05-09 17:50:06 -07:00
Tomaz Canabrava
9cc089f9f6 Removed unused code that I'm sure it's safe to delete.
Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-05-09 17:50:06 -07:00
Tomaz Canabrava
5978afbcd8 Use a Default pen to make the configuration easier.
Created a default pen that has 'cosmetic' enabled,
A cosmetic line doesn't change it's width no matter
what zoom level we apply.

Also , changed everything that used a line to have
that as default pen instead.

Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-05-09 17:50:06 -07:00
Tomaz Canabrava
cb8198b524 Plot the vertical ruler on the left of the profile.
Plot the numbers on the left of the profile.
It seems that everythign is being plotted -
But I can see that there are coordinate-errors on the
code. ( the GTK one plots some curves below of the
dive, but the Qt one is overlapping - probably the
way that I'm using the gc information)

Need to investigate a bit.

Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-05-09 17:50:06 -07:00
Tomaz Canabrava
b794c23099 Plot pp Text
This patch plots the PP text, but when I plotted I realized
that the gc.pi.mapp is being calculated wrong, probably
something went wrong on the calculations - it's comming
zered always. So, only one line & text is plotted.

Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-05-09 17:50:06 -07:00
Tomaz Canabrava
25d65ab97d Plotting deco text.
Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-05-09 17:50:06 -07:00
Tomaz Canabrava
e62eb58ab5 Plotting cylinder pressure text.
Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-05-09 17:50:06 -07:00
Tomaz Canabrava
d6d1a10195 Plotting depth text.
Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-05-09 17:50:06 -07:00
Tomaz Canabrava
c62e8e5baa Plotting temperature text.
Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-05-09 17:50:06 -07:00
Tomaz Canabrava
17c6db6a5b Shows the correct color for the CylinderPressure
Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-05-09 17:50:06 -07:00
Amit Chaudhuri
7f9fbd2295 Horizontally align labels on info widget page.
Left aligning text values looked wrong.

Use Qobject cast to filter labels from any other qobjects around and
set alignment. Doing this via Qt Designer would be tedious.

Signed-off-by: Amit Chaudhuri <amit.k.chaudhuri@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-05-09 12:10:34 -07:00
Amit Chaudhuri
4f4d40925b Remove 2 keyboard short cuts.
Ctrl-C & Shift-Ctrl-C were used for next & prev DC which was considered
to be poor style.

Disable for now. Maybe replace with something else?

Signed-off-by: Amit Chaudhuri <amit.k.chaudhuri@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-05-09 10:28:15 -07:00
Tomaz Canabrava
9554cb5767 Plot of the Cylinder Pressure over time.
a few code was moved around, a macro that contained
the form of x ? : y; had to be rewritten to x ? x : y
since c++ doesn't allow ternarys without the middle operator.

The color-choosing for the Cylinder Pressure broke
on the Qt port - but it's a small issue.
I'm painting everyone as 'dark green' now, will
fix that later.

Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-05-09 00:24:03 -03:00
Dirk Hohndel
d120fed211 Add bounding box to profile
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-05-08 16:53:00 -07:00
Dirk Hohndel
880870b46c Show the dive computer name in the profile window
And clean up some obsolete Gtk related stuff that is no longer relevant
for the Qt port.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-05-08 16:30:38 -07:00
Dirk Hohndel
656b58f205 Add tooltip data and cleanup size calculations
Tomaz' code had a fixed height per tooltip item and some rather suspicious
logic how to position them (and how to size the surrounding box), based on
a fixed height in pixels per item - which of course fails if you use
larger fonts or multi line items.

This uses the bounding rects to correctly calculate the sizes and populates
the tooltip with the other dive data that we already had in a helper
function.

This also fixes a small formatting issue for gas change events.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-05-08 15:46:16 -07:00
Dirk Hohndel
6f06c31d0b Stop passing around gc and pi
Make the graphics_context part of the ProfileGraphicsView and remember
that the plot info is already a part of the graphics_context (we kept
passing around both of them in the Gtk code... pointless but a leftover
from before adding the pi to the gc...)

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-05-08 15:01:49 -07:00
Tomaz Canabrava
688276b6f2 Fix moving the ToolTip box with the mouse.
When I changed the way that the tooltip box behaved,
I accidentaly 'ate' the mouseMoveEvent, it was being
used only to show tooltips instead of everything
that it should have. this simple patch fixes it.

Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-05-08 14:20:15 -07:00
Tomaz Canabrava
ef7ace9926 Plot the temperature Graph
Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-05-08 14:19:10 -07:00
Tomaz Canabrava
ce8d30b938 Make tooltips works
Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-05-08 14:18:27 -07:00
Tomaz Canabrava
2089c124a5 Work on the tooltips - WIP.
Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-05-08 14:18:27 -07:00
Tomaz Canabrava
76e1436f68 Better design for the ToolTip Handler.
Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-05-08 14:18:27 -07:00
Amit Chaudhuri
b5d5b05140 Fix crash on right click dive trip
A null pointer dereference occured after right click on a dive trip
because updateDiveInfo was called with dive == -1 causing get_dive(int)
to return null.

Wrap to avoid crash and clear dive info widget text labels.

[Dirk Hohndel: this is different from the fix I had committed earlier;
               I decided to combine the ideas, clean this one up a bit
	       more and this is the result]

Signed-off-by: Amit Chaudhuri <amit.k.chaudhuri@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-05-08 12:10:51 -07:00
Dirk Hohndel
661aa67e89 Avoid potential crash if no dive is selected
I missed to spots where we would unconditionally dereference the dive
pointer.

Reported-by: Henrik Brautaset Aronsen <subsurface@henrik.synth.no>
Reported-by: Amit Chaudhuri <amit.k.chaudhuri@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-05-08 10:51:15 -07:00
Dirk Hohndel
df01a5d35f Added a bit of documentation on how to use the ToolTips & removed 2 bad-api methods
Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-05-07 16:14:15 -07:00
Dirk Hohndel
d590cb9519 Adds real support for ToolTips.
This patch changes the Event drawing so it can display tooltips. It is now
the responsibility of the item to show / hide a tooltip.

A bit of code-refactoring got on here too because I was using only
QGraphicsItem calls and I wanted to use a hover in / hover out event
to show / hide the tooltip.

Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-05-07 16:14:15 -07:00
Tomaz Canabrava
c928b9cb94 Added the first overlay of the tooltips, with some test data.
The tooltips now can:
1 - be moved around the canvas
2 - dynamically expand / retreat when a new tooltip is added.

Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-05-07 16:14:11 -07:00
Thiago Macieira
5e4f06e6ad Enable the code that was #if 0'ed out
Linking error is fixed.

Signed-off-by: Thiago Macieira <thiago@macieira.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-05-06 20:56:41 -07:00
Thiago Macieira
265376db06 Add #include guards to statistics.h and the extern "C" for C++
If the extern "C" is missing, the C++ compiler will try to find a
function by its mangled name. Since the function is in a .c file,
there will be no mangled name.

Signed-off-by: Thiago Macieira <thiago@macieira.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-05-06 20:56:39 -07:00
Dirk Hohndel
1240455a9a Missing helpers.h file
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-05-06 20:50:30 -07:00