summaryrefslogtreecommitdiffstats
path: root/qt-ui
AgeCommit message (Collapse)Author
2014-08-27Define PATH_MAX if it's not definedGravatar Salvo 'LtWorf' Tomaselli
Fixes FTBFS on Hurd. [Dirk Hohndel: changed PATH_MAX to 4096 for consistency with Linux] Signed-off-by: Salvo 'LtWorf' Tomaselli <tiposchi@tiscali.it> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-27Preferences: only save settings that are changedGravatar Dirk Hohndel
This continues the effort started earlier to only save things that aren't the default. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-27Use one consistent font size throughout the appGravatar Dirk Hohndel
Let's see how much people notice it / hate it. Fixes #712 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-27Don't set up fonts twiceGravatar Dirk Hohndel
Turns out that the mainwindow reads the settings and sets up things - except that this has already happened in the constructor of the static PreferencesDialog. So only keep those parts that aren't handled there. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-27Default font: more fine tuningGravatar Dirk Hohndel
In order to get rid of the old default font on Windows (Calibri) we are going to near ridiculous length. The reason for this is that we in the past always saved the default font in the settings (how stupid was that!) and so now even with a new default font in place, since there is an explicit font in the settings we take that instead of the default. Instead of requiring our existing users to use a registry cleaner to get the correct default font on Windows 7 and later (the VAST majority of our Windows users at this stage), we simply explicitly ignore that old default font. There is one very nasty side effect. A user cannot set Calibri as their font of choice on Windows 7 or later (because we always force them back onto Segoe). Given how much nicer Segoe looks I think this is an acceptable flaw - let's hope this doesn't come back to bite me in the future. At the same time this changes the default font size handling. We try to get the default font size of the OS so the app looks "right". This seems to not give me the expected result on Linux with KDE, but maybe I'm doing it wrong? Looks good when testing on Windows. See #712 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-26Small whitespace cleanupGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-26TableWidgets: change default column width and don't save unchanged widthsGravatar Dirk Hohndel
Similar change to the dive list. The idea is to not save things that are the default. This way Subsurface will do the right thing when defaults change. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-26DiveList: don't save default column widthGravatar Dirk Hohndel
This is an elegant way around our problem with people who have the horrible old "100px" column width in their settings. The first time they run Subsurface after this fix things won't get better, but the offending keys will be deleted at exit. And the second time they run, they'll get the much more sensible new default widths. Thanks to Thiago for this idea. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-26Fix planner gas consumptionGravatar Dirk Hohndel
We need to start out with valid SAC rates in the diveplan. Thanks to Gaetan for finding this and suggesting a different fix - this seems cleaner to me. Reported-by: Gaetan Bisson <bisson@archlinux.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-26Fix missing translations for webservice responsesGravatar Dirk Hohndel
The webservice backend sends responses in English. Let's do a better job presenting those in the users preferred language. Fixes #714 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-25Implement the modelDataChanged to repopulate the widget on StatisticsGravatar Tomaz Canabrava
The modelDataChanged method will remove all items and recreate everything *right* now we will never use it, because we are not triggering any changes on the model, but simply deleting and recreating it everytime we open the dialog. to be changed in the future. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-25Use scene()->clear() instead of manually clearing the scene.Gravatar Tomaz Canabrava
When there's a rowsAboutToBeRemoevd, remove all items from the scene() by calling scene()->clear(), instead of creating a method just for that. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-25Use aboutToBeRemoved instead of removedGravatar Tomaz Canabrava
If we used removed things from the interface we could hit a dangling pointer, so first delete the items, then let the system delete the rows. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-25Implement the resizeEvent to make the statistics always visible.Gravatar Tomaz Canabrava
Always fit the whole scene in the view. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-25Create stub methods and connects the model with the new statisticsGravatar Tomaz Canabrava
Connects the YearlyStatistics model with the YearlyStatisticsWidget nothing is shown right now, mostly because I need to do everything but now it's easyer to add the things that are missing. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-25Add the old Statistics to have a reference view while programmingGravatar Tomaz Canabrava
Added the old statistics panel at the botton of the new one to have a reference view of the statistics while programming the new one. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-25Remove a lot of non-necessary boilerplate code.Gravatar Tomaz Canabrava
We used to have a very sad way of controlling the statistics, now we will create the model when there's a need for it. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-25Add initial skeleton for the Statistics RedesignGravatar Tomaz Canabrava
The statistics widget is a beast, one of the parts that I dislike most on the current subsurface implementation. This is the initial work to change that to something amazing. This first commit adds the first bunch of files that I think are needed, and the correct setup for the qmake and cmake buildsystems. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-25Fix NO_USERMANUAL building for androidGravatar Anton Lundin
Signed-off-by: Anton Lundin <glance@acc.umu.se> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-23Re-enable the edition of the Date after editing a trip.Gravatar Tomaz Canabrava
Since we can't edit the trip date, we need to remember to re-enable it after we disable it. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-23A much better Toolbar for the profile.Gravatar Tomaz Canabrava
Using QToolBar I was able to remove much of the dead code from the mainwindow.ui xml file by transforming the QToolButtons into actions and loading them dynamically in the .cpp code. I couldn't use the designer for this ( as I wanted ) because Qt has no notion of ToolBars outside of the areas where the MainWindow should have one, and we use it in a very different area. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-23TankBar: don't risk dereferencing stale pointersGravatar Dirk Hohndel
Basically we could end up in a situation where the plotInfo is no longer valid, yet the model changes and triggers a redraw before the new data is passed into the TankBar. Instead of chasing that race condition it seemed much easier to just copy the plot_data entries and the gas information in the dive. Fixes #716 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-22Divelist: Use more sensible default column widthsGravatar Dirk Hohndel
Having 100px wide columns was simplistic and stupid. It was never intended to stay that way. See #712 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-22Divelist: switch to better column headersGravatar Dirk Hohndel
And move the units there. This is a long going back and forth. What we want is narrow columns. But what we need is something that's easy to understand for our users. I'm open to other suggestions, but I think this moves us in the right direction. See #712 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-21Fix selection logic when manually adding a diveGravatar Dirk Hohndel
This was an interesting bug. When adding a dive that would end up in the middle of the dive list, the newest dive in the dive list would end up marked in the dive structure as selected - even though it wasn't visualized as selected by Qt. Bad things happen if the user then made changes to that dive without selecting something else first, for example by either editing the dive or doing things to it like removing it from or adding it to a trip. The same operation would also be applied to the newest dive in the dive list. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-21Planner: Control-Click removes divedatapoint and all following onesGravatar Robert C. Helling
In order to offer a simple way to remove a calculated deco, if Control is pressed while clicking on the trash can in the dive plan, that point and all following are removed. This way the user can Ctrl-click on the first calculated waypoint. Signed-off-by: Robert C. Helling <helling@atdotde.de> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-21Crash clicking on the globe without a diveGravatar Karina Mochetti
When the user right clicks the globe, we should only present the menu action if there's a current dive, if not, we disable it. Signed-off-by: Karina Mochetti <karina.mochetti@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-21Dive list: seriously simplify the "add to trip" codeGravatar Dirk Hohndel
The existing code seemed way complicated, made way too many assumptions and apparently was broken in certain cases. This code seems very simple, looks correct and should fail gracefully (i.e. simply do nothing) if things get confused. Fixes #706 (I hope) Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-21Show correct path after saving dive computer settingsGravatar Joseph W. Joshua
When backing up dive computer settings to XML, the confirmation dialog shows the default file path. This patch fixes that by displaying the correct file if the user changes the backup location. Signed-off-by: Joseph W. Joshua <joejoshw@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-21Make sure tank bar button triggers tank barGravatar Dirk Hohndel
This worked flawlessly on Mac and Linux, but on Windows I needed to add the explicit setVisible here - not quite sure why. Fixes #710 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-19Planner: don't show CC Set Point when planning divesGravatar Dirk Hohndel
So far we only plan OC dives, so let's not confuse things by showing the set point for the tank. Fixes #261 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-19Planner: make sure start time is reflected in diveplan and displayed_diveGravatar Dirk Hohndel
Fixes #709 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-19Fix crash when calling the planner twice in a rowGravatar Dirk Hohndel
Turns out that the fix in commit f7119bdccfb2 ("Planner: make sure no old handles are around when entering Add/Plan") was incorrect. We ONLY want to remove the existing handlers when we re-plan a dive, NOT when we call add or plan. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-19Don't trigger creation of dive from invalid plan in planCreated()Gravatar Dirk Hohndel
This is subtle. The modifications to the selection cause a redraw of the profile. So we need to make sure that we leave the plan state and return to profile state BEFORE we do this, otherwise we'll call into createTemporaryPlan() with invalid data. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-19Mark manually entered waypoints as suchGravatar Dirk Hohndel
With this information, when we re-plan a dive we can bring the user right back to the point where they ended - they have the waypoints in the dive pointes table and handles are shown on the right points in the profile - and the rest of the dive is once again calculated by the planning algorithm. For now this state is lost when saving the dive file as we don't add this flag in the sample to our saved files. So if we don't find any samples marked as manually added we add ALL of the samples as way points on the diveplan and the user has to manually remove the ones that were calculated. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-19Planner: make sure no old handles are around when entering Add/PlanGravatar Dirk Hohndel
In some cases we don't appear to remove all of the old handles from the scene and end up showing a handle from a previous instance of the planner in the upper right corner of the profile. This patch makes sure that we remove any stray handles that might still be around before entereing plan or add mode. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-19Planner: after canceling a plan, redraw the profileGravatar Dirk Hohndel
While planning we might have made changes to the displayed_dive. So we need to make sure that the profile is redrawn after we cancel a plan (or a re-plan). Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-19Planner: clear out model before re-planning a diveGravatar Dirk Hohndel
Otherwise points from a previous run might be around. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-19Add ability to replan a dive that we planned beforeGravatar Dirk Hohndel
When doing this, all waypoints of the calculated ascent are now waypoints in the plan - so the user has to remove the ascent part of the dive in order to really replan the dive. That's a pain, but we don't keep the data around that would tell us which waypoints are user input and which ones were calculated. Fixes #527 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-19Planner: don't calculate ascent while adding waypointsGravatar Dirk Hohndel
It's silly to carefully calculate our ascent for each new waypoint that we add to the plan. Let's get them all in and THEN calculate an ascent. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-19Planner: correctly free divedatapointsGravatar Dirk Hohndel
Simply setting the pointer to NULL leaks memory. And that C++ recursive two function implementation... oh boy. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-19Planner: bring sanity to the SAC rate handlingGravatar Dirk Hohndel
The old implementation was... let's call it creative. This tries to actually get things right instead of using magic. Don't pretend that double values are ints. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-18Merge branch 'joshua-gsoc' of git://github.com/thiagomacieira/subsurface ↵Gravatar Dirk Hohndel
into josh Signed-off-by: Dirk Hohndel <dirk@hohndel.org> Conflicts: subsurface.pro
2014-08-18Preferences: increment/decrement partial perssure values by .1Gravatar Dirk Hohndel
This defaulted to +/-1 which really isn't all that useful. Fixes #703 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-18Planner: assign a dive number if the right number seems obviousGravatar Dirk Hohndel
Use the same logic as we do for newly added dives. As a side effect this patch appears to fix the issues with getting the newly planned dive selected. Fixes #692 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-18TankBar: make outline zero-widthGravatar Dirk Hohndel
In some circumstances Qt will draw a really thick border around rectangles. This explicitly makes the border of the tank bar thin. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-17Cut'n'paste for dive data: implement paste sideGravatar Dirk Hohndel
This should correctly set all the values and puts us in edit mode. Testing so far looks good for both single dive and multiple dives selected (i.e., you can paste into multiple dives). Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-16Selective copy: forgot tags in the UIGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-16Don't always clear the dive before selectively copyingGravatar Dirk Hohndel
This will be needed when pasting the data back into a (set of) dive(s). Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-16Cut'n'paste for dive data: implement copy sideGravatar Dirk Hohndel
Admittedly not very useful without working paste, but it's progress. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>