Commit graph

9958 commits

Author SHA1 Message Date
Dirk Hohndel
e28f171731 Untangle Profile from MainWindow: refresh display
Instead of directly calling into the MainWindow, redirect this via a
signal so Subsurface mobile can hook it up as needed.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-05 13:45:51 -08:00
Dirk Hohndel
281a0a945a Untangle Profile from MainWindow: add missing header
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-05 13:45:51 -08:00
Dirk Hohndel
1013ba39c5 Untangle Profile from MainWindow: shortcuts
This, too, should be done with signals.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-05 13:45:50 -08:00
Dirk Hohndel
000c9cc21c Untangle Profile from MainWindow: turn off tts/ndl calculation
I'm not sure we can ever run into this issue anymore since we stop
calculating TTS / NDL past 2 hours, but I guess on a fairly slow CPU this
still could take too long.

But instead of calling into MainWindow let's just change the setting right
here and add a signal to show the notification - that way we can use the
appropriate way to make such notifications on the mobile app.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-05 13:45:50 -08:00
Dirk Hohndel
eb2e76a691 Remove dead code
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-05 13:45:50 -08:00
Dirk Hohndel
081295cb40 Untangle Profile from MainWindow: files on command line
There's no reason why this should be on the MainWindow widget.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-05 13:45:50 -08:00
Dirk Hohndel
533d724d1b Profile: begin untangling from MainWindow
Use a signal to turn the toolbar on or off.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-05 13:45:50 -08:00
Rex Dieter
fcf47552c6 Use target_link_libraries for Grantlee
This allows for finding headers when not in /usr/include (like
parallel-installable distribution-packaged grantlee5)

Signed-off-by: Rex Dieter <rdieter@fedoraproject.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-05 13:45:50 -08:00
Dirk Hohndel
3ebbf6bc5d QML-UI: find the include files
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-05 07:59:09 -08:00
Dirk Hohndel
8edc5497ac Android build: we no longer have a MainWindow instance
So we don't need to hide it, either

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-05 07:58:50 -08:00
Dirk Hohndel
4e174df58f Cmake: correctly identify an Android build
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-05 07:57:47 -08:00
Tomaz Canabrava
4491711e09 Re-add the signal connections
The signal connections from the old preferences got lost when
we moved to the new ones because Designer is broken and can't
handle signals / connactions from copy/pasted content.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-04 17:24:31 -08:00
Dirk Hohndel
ba55c60395 Cmake: fix BT definition
This was set twice, the first time before we checked that we have a new
enough Qt version installed.

Also fixed a typo.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-03 09:20:47 -08:00
Lubomir I. Ivanov
0196ac1568 NSIS: add a couple of uninstaller checkboxes
Add a new dialog/page which is shown right before
the final "uninstall" click.

The dialog may contains two checkboxes - for registry
entries and for the user path. These checkboxes will not be
created if the user has not run the application yet,
as no registry keys will be available.

Selecting the user directory checkbox shows a warning message box,
that the user should make sure no important files are present there.

Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-03 09:06:07 -08:00
Lubomir I. Ivanov
5002fa4887 PreferencesDialog.cpp: store 'default_directory' in QSettings
This is needed only on Windows, so that the uninstaller knows
which directory to delete.

Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-03 09:04:23 -08:00
Guido Lerch
fb24210ad9 Context menu for images: add loading from file / web
Signed-off-by: Guido Lerch <guido.lerch@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-03 08:31:41 -08:00
Guido Lerch
b73b312673 Context menu for images: enable multi selection
Signed-off-by: Guido Lerch <guido.lerch@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-03 08:31:41 -08:00
Guido Lerch
889fa1e4cc Context menu for images: small fix
Required change within DivePictureItem, adding update
parameter defaulted to true in this case.

Signed-off-by: Guido Lerch <guido.lerch@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-03 08:31:41 -08:00
Guido Lerch
951e3d920b Context menu for images: support deletion
Adding modified code to support deletion of selected images as
well as deleting of all images (with warning messagebox)

Signed-off-by: Guido Lerch <guido.lerch@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-03 08:31:41 -08:00
Guido Lerch
eb6d5415c1 Context menu for images: remove obsolete code
Signed-off-by: Guido Lerch <guido.lerch@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-03 08:31:41 -08:00
Guido Lerch
8ce471c2f5 Context menu for images: change DivePicture model
Altering DivePicture model to allow deleting images
from the QListView without immediate updating of the
list. Updating is determined by an additioanl parameter

Signed-off-by: Guido Lerch <guido.lerch@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-03 08:31:40 -08:00
Guido Lerch
3c3523f9b8 Context menu for images
Just add a context menu for now - the following commits will make this
useful.

Signed-off-by: Guido Lerch <guido.lerch@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-03 08:31:04 -08:00
Miika Turkia
6381425476 Fix UDDF import indentation
Only indentation is changed on this commit.

Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-03 08:24:09 -08:00
Miika Turkia
af323a9fb1 Only include samples with data on UDDF import
According to the specification each proper sample should have depth, so
we can just ignore the empty waypoints.

Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-03 08:24:05 -08:00
Lubomir I. Ivanov
048c5e01b1 subsurfacestartup.c: don't double free 'default_filename'
'default_filename' is obtained from system_default_filename()
but system_default_filename() returns a static pointer
the HEAP memory of which is handled in main().

Remove the free() for 'default_filename' free_prefs()
to prevent a double free().

Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-03 07:44:56 -08:00
Lubomir I. Ivanov
05ca5051e9 Fix M_PI with -std=c++11 on Mingw
The introduction of -std=c++11 breaks usage of M_PI in Mingw,
but technically M_PI is not standard C or C++.

Defining M_PI in units.h solves the issue.

Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-03 07:19:05 -08:00
Miika Turkia
4833d6bd72 Grab all gas mixes only when no tank data is given
Grabbing all gas mixes was added for Xdeep default cylinders, and it is
not required for other data sources that have tankdata info in the UDDF
file.

See #958

Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-02 21:04:47 -08:00
Dirk Hohndel
8ea7f40457 Merge branch 'cmakeAndPreferences' 2015-11-02 19:54:34 -08:00
Linus Torvalds
b273c1b0ca Don't overflow cylinder array in xml parsing
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-02 19:53:28 -08:00
Dirk Hohndel
df7818a9b8 Preferences: make apply work
We didn't respond at all to that button. Also, the language settings
didn't propagate without this explicit call.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-02 12:53:47 -08:00
Tomaz Canabrava
9f93b9a934 Preferences: Call LoadPreferences from whitin the new dialog
When I removed the old preferences dialog, I forgot to load them
again. The code is in the wrong place: it should be on every and
each preferences dialog (or on the main preferences)

Beware if you used this wip code before, I may have destroyed
your preferences.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-02 12:53:18 -08:00
Tomaz Canabrava
a48e6241dc Forgot to set the static variable static
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-02 12:53:10 -08:00
Tomaz Canabrava
c66de6f707 Do not depend on the subsurface_core qrc for tests
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-02 12:52:59 -08:00
Tomaz Canabrava
bf12c3533c Preferences: Use apply instead of reset to defaults
Change the Reset to Defaults button to Apply in the preferences dialog.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-02 12:52:30 -08:00
Tomaz Canabrava
ff57881265 Preferences: Remove the old dialog and use the new one
The new preferences dialog still needs a bit of fine tuning
but should already work.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-02 12:52:15 -08:00
Dirk Hohndel
8a3fb854c2 Preferences: hook up the UI page with the preferences structure
With this the new date and time formats mostly work

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-02 12:51:31 -08:00
Dirk Hohndel
f85883c707 Create date and time formats preferences
Now we can actually change them in preferences instead of just deriving
them from the language set.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-02 12:51:31 -08:00
Dirk Hohndel
222ce62bce Preferences: add date and time format to language page
Not hooked up, yet.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-02 12:51:31 -08:00
Dirk Hohndel
852c9f4e3b Merge branch 'for_dirk' of https://github.com/atdotde/subsurface 2015-11-01 13:22:08 -08:00
Rick Walsh
ad660da6d1 Profile: Display VPM-B rather than GF when in VPM-B mode
If we are planning a dive using VPM-B with +x conservatism, we want to
print "VPM-B +x" at the top of the profile, instead of "GF xx/yy".

Accordingly, the variable gradientFactor in profilewidget2.cpp is renamed
decoModelParameters to reflect what it represents.

Signed-off-by: Rick Walsh <rickmwalsh@gmail.com>
Signed-off-by: Robert C. Helling <helling@atdotde.de>
2015-11-01 21:18:00 +01:00
Rick Walsh
5c16305b4a Calculate VPM-B ceiling outside of planner
Doing VPM-B calculations for dives outside of the planner has not been
possible because real dive data does not record either:
	- reference pressure for the Boyle's law compensation (i.e.
first_stop_pressure), or
	- deco_time for the vpmb_next_gradient function used to do the CVA
calculations

However, we can infer these values to be:
	- first_stop_pressure is the deepest ceiling in the dive
	- deco_time is dive time from the deepest ceiling until the
	  ceiling clears (or would have cleared if the diver finished
	  their deco obligations)

With these assumptions, the CVA converges rapidly.

Signed-off-by: Rick Walsh <rickmwalsh@gmail.com>
Signed-off-by: Robert C. Helling <helling@atdotde.de>
2015-11-01 21:18:00 +01:00
Salvador Cuñat
f2ff2022e6 Update spanish translation of user manual to english eed9a4b
Signed-off-by: Salvador Cuñat <salvador.cunat@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-01 11:06:50 -08:00
Miika Turkia
0f90e68385 Give proper error message when no dives on a zip
We import a few logs that are archived in a zip file. E.g. divelogs.de
import is a zip file named with .dld extension. In case the zip file is
empty, we should return an error message that states that fact, not
parse error. This will also end the input file parsing cleaning up
the error message on the console.

Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-31 16:40:17 -07:00
Dirk Hohndel
9eed778c68 Preferences: switch language preference to be a dropdown
The list widget takes too much space and isn't really any better. The
dropdown plus fliter is actually rather neat.

Also added back the connections so the dropdown and filter get disabled
when system default is selected (just as it was in the old preferences
dialog).

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-30 13:14:06 -07:00
Tomaz Canabrava
8dad3457ef Make the skeleton Facebook plugin and make sure it is loaded
Currently we need to copy manually the plugin dynamic library
to the /plugins folder.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-30 10:36:52 -07:00
Tomaz Canabrava
391172240a Facebook plugin skeleton
Just to see if a plugin will compile.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-30 10:36:52 -07:00
Tomaz Canabrava
d3a8288ad5 Populate the MainMenu with social network actions
The magic happens here: We are iterating over the plugins
and populating the main menu with all actions provided by
them. Currently we can't test this as we don't have a single
plugin. Next patch series of commits will be adding the
Facebook plugin.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-30 10:36:52 -07:00
Tomaz Canabrava
9d1117cd6c Constify, Referencify
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-30 10:36:52 -07:00
Tomaz Canabrava
e62d439bda Start the Plugin Manager
This bit of code will try to load all plugins avaliable.
Now I need to port a Facebook plugin for this new system,
then I'll delete the old preferences widget.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-30 10:36:51 -07:00
Tomaz Canabrava
66d3e99ff2 Add a PluginManager class
This class is currently very small but the reason of existence
is to allow subsurface to be easily extendable via plugins.
The current type of plugin that I'm making is Social Network,
but another possibilities:

- Dive Simulation Algorithm
- Import/Export Filters
- Profile Overlays

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-30 10:36:51 -07:00