summaryrefslogtreecommitdiffstats
path: root/qt-ui/diveplanner.cpp
AgeCommit message (Collapse)Author
2013-07-02Silence some warningsGravatar Dirk Hohndel
One of them actually looks like it was a bug... Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-07-02Make the increase time button to work.Gravatar Tomaz Canabrava
Makes the increase time button to work, it will increase the minimum time, not the correct time of the dive. the total time is calculated by the deco, and does not come from this, unless the deco is smaller than the minimum time. This patch also fixes the problem where a button would only click once - I was holding the first clicked button as the 'mouse grabber', bad tomaz. Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-07-02Make the 'increase depth' button to work.Gravatar Tomaz Canabrava
Make the increase depth button to work, it also adds a 'safety' stop at 150m, I know that this is deep, and maybe we need to adjust this to a better safety stop. Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-07-02Removed user-entered lines on the plan, keeping only deco.Gravatar Tomaz Canabrava
Removed the user-entered lines on the plan, keeping only deco, This way the graph looks way prettier and we don't loose any functionality. Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-07-02Change the color of the DepthString based on it's deepnessGravatar Tomaz Canabrava
Change the color of the DepthString based on it's deepness on the profile planner. The new color of the profileString ( the string that follows the mouse stating how deep you are) is now interpolated from SAMPLE_SHALLOW and SAMPLE_DEEP - but since those two colors were the same and I had to change it so that could work, I want somebody to check if my choose of colors were ok. Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-07-02Use the same profile colors on the planer for the Time and DepthGravatar Tomaz Canabrava
Use the same profile colors on the planner for the Time and Depth rulers. this needed a new method on the rulers - setColor, that will call the setPen method and make everything behave properly. Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-07-02Fixed positioning of the dive Handlers.Gravatar Tomaz Canabrava
Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-07-02Correct collors for the DivePlanner background.Gravatar Tomaz Canabrava
Use the correct colors for the Background on the Dive Plan, same as on the Profile. Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-07-02Added the last 'tick' to the rulersGravatar Tomaz Canabrava
The last tick to the rulers were missing, this was making them to look odd, this make the rulers better looking, but it caused the other-non-ported-yet-to-percent stuff to behave in a not so good way, most visible one is the handlers, gonna update them next. Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-07-02Change the rules so they work with percentages.Gravatar Tomaz Canabrava
Changed the ruler so that they work with percentages, also added a new method to the rules to set the size of the ticks. Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-07-02Added a method and a simple stub to position things using percentage.Gravatar Tomaz Canabrava
Added a method and a simple stub to position things on the canvas using percentage - this way I have a proper control on where I want to put things on screen and it will make simpler for future changes, even if the amount of code written is a bit bigger. Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-07-02Shared background for profile and planner.Gravatar Tomaz Canabrava
Share the background for profile and planner. Those are not the same class, but they should behave somwheat the same. Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-06-27Make planner prettier. but still ugly.Gravatar Tomaz Canabrava
Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-06-27Removed memleak created by the diveplan calculationsGravatar Tomaz Canabrava
Removed a small memleak created by the diveplan calculations. Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-06-27Added the Ok / Cancel buttons on the dive planner canvas.Gravatar Tomaz Canabrava
Added the ok / cancel buttons on the dive planner canvas. I still need to hook the esc button to cancel it too, but since I removed the 'floating dialog' option and merged it into the mainwindow, it's necessary. Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-06-27Moved the DivePlanner to the MainWindow.Gravatar Tomaz Canabrava
Now, activating the dive planner will hide the profile and show the planner on the same place. we still need a way to 'cancel' or 'accept' the profile created. Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-06-27Somewhat saner behavior for rescaling the planner time axisGravatar Dirk Hohndel
We always resize if the dive is longer than the current scale allows, but we don't shrink it overly aggressively and we never shrink it below the initial size. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-06-27Correctly prevent time travel in plannerGravatar Dirk Hohndel
Prior to this change the visual feedback (the handle that is drawn when the user moves the mouse while pressing the left mouse button) would not move to an illegal position (one that is impossible without time travel), but it the user moved the mouse to such an illegal position and then released the mouse button, we still added that illegal position to the plan. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-06-27Remove unused codeGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-06-27Remove incorrect logic for first line in plannerGravatar Dirk Hohndel
This greatly simplifies the code. Similar to (but not based on) code submitted by Robert Helling. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-06-27Removes circle in planGravatar Robert Helling
Remove circle in plan by starting the first line at the first point rather than the last. In addition marks all entered points as entered and not just the first and sets line color accordingly. Makes plan_add_segment return the added data point. Signed-off-by: Robert C. Helling <helling@atdotde.de> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-06-26Fixes most of the issues with the dive planner.Gravatar Tomaz Canabrava
Fixes most of the issues with the dive planner, The lines are removed when the drag starts, and it's repopulated after. The time ruler updates itself with the biggest time in the dive (I'll add later the code to keep a minimum of 60 minutes, and increase by 15 to 15 minutes, but for now this will work ), Removed the code to do line manipulation while we are moving handlers around ( because it could trigger ruler-expansion, that woul'd move everything, and that's not nice. This showed that something bogus is going on with the decompression algorithm - I don't know if it's on the data or on the algorithm itself, but it's creating a ring with the lines on the canvas I painted all decompression-algorithm based lines red so it's easier to spot where the hell things got wrong. midnight, sleepy. Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-06-26Remove the bogus time/depth, and fix the positioning of the Handler after ↵Gravatar Tomaz Canabrava
updateTicks. Remove the bogus time/depth that was duplicated in the Handler - dirk didn't realized that I already created the same data that he put on it later, but mine was double and his his was int, I choosed his implementation since he knows a bit more than I do about subsurface internals. Besides that, I worked a bit on the logic that called update ticks, because it was calling it for every mouseMoveEvent, it created sooooo many ticks that it made the app unusable ( and slow. ) Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-06-23Perform deco calculation for planGravatar Dirk Hohndel
This uses a bunch of default values that we eventually need to get from the UI, but it's a first step towards a working dive planner. This exhibits some graphical artifacts when running, but other than that appears to be mostly correct. Things go far worse if I enable the changing of the scale once the deco makes the dive longer than the displayed time window. Things quickly spiral out of control. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-06-23Start hooking in the deco calculationsGravatar Dirk Hohndel
I expanded the DiveHandler to include the actual time / depth of each node on the graph - this way things will stay consistent if we need to rescale the graph. One thing that this makes obvious is that the whole design for the planner so far assumes metric data. We need to make sure this works well with feet instead of meters as well (and that it uses the information in the units settings). With this change we actually create a dive based on the plan input and add the deco stops (if needed) to it - but we don't do anything with the results of those calculations, yet. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-06-23Print the rounded values for time and depth in plannerGravatar Dirk Hohndel
This looks much more natural than truncating the values. Now the displayed numbers correspond to the "snap" behavior of the handles. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-06-23Fix updateTicksGravatar Tomaz Canabrava
This is the correct way to add the ticks (and gets rid of two warnings). Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-06-23Clean up coding styleGravatar Dirk Hohndel
Just to keep me sane. The code still shows compile time warnings which are the areas where we need to complete things to actually do the deco calculations, etc. But now seemed a good time to merge it into master as hopefully more people can contribute. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-06-21Added the skeleton implementation of the increaseTime and depthGravatar Tomaz Canabrava
Added the skeleton implementation of the increaseTime and increaseDepth methods - they will increase the time / depth by 10 units ( feets / minutes ) each time they are clicked. Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-06-21Added a new class to handle the pseudo-buttons on the canvas.Gravatar Tomaz Canabrava
Added a new class, named Button, that has a clicked() signal, and can be connected to the view to emulate buttons. While I know that Qt supports widgets on canvas - I think it's too nineties to have such square controls on something that can have rounded borders. Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-06-21Make the plot and handle movement stick to an 'Grid'Gravatar Tomaz Canabrava
Make the plot and the handle stick to a grid, the grid is defined by the integers in the rulers, so a time of 10,2 is converted to 10, and will put the point at 10. Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-06-21Depth doesn't suppose to show broken numbers.Gravatar Tomaz Canabrava
This patch makes the depth to show only integers, as dirk asked. I'v also added a 'm' at the end, I know that this will need to be taken from the settings but i feel lazy today =p Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-06-21Makes the first and last line of the plot inside of the boundingrectGravatar Tomaz Canabrava
This patch makes the first line and the last line of the plot inside of the boundingRect defined by the timeLine and depthLine Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-06-21Do not plot dive handlers outside of the Plane area.Gravatar Tomaz Canabrava
This patch makes the behavior of inserting new hanflers correct. it can only be inserted now inside of the plane defined by the Depth ruler and Time ruler. Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-06-21Created the posAtValue method for the rulerGravatar Tomaz Canabrava
Created the posAtValue method for the ruler, you enter a value, and it will return the coordinates in double ( coordinate system of a QGraphicsScene is double based ) this is not the best name for the function, but I couldn't find any better suitable name. Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-06-20Added a new class to handle the DivePlanner dialogGravatar Tomaz Canabrava
Added a new class named DivePlanner that is a QDialog, and renamed the old DivePlanner class to DivePlannerGraphics. Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-06-20Make skeleton of 'create_deco_stop'.Gravatar Tomaz Canabrava
This is a skeleton of 'create_deco_stop' plus a bit of code cleanup. I'v commented the create_deco_stop so that the other developers can help me a bit here - since I don't know too well the internals of subsurface. In the original GTK code - a new dive was created every time a user changed something on the dive, I don't know if this will be needed, I jusst need two things: the correct time of dive calculated by the app, and the points to put the decompression lines. The usability of the widget right now is 'ok', nothing to be proud of, it's ugly as hell too, and the Rules are in the wrong position ( they are 'inside' the area where the lines are being drawn, but htis is easily fixable. ) Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-06-20Restore the original color of the Handler as soon as mouseRelease.Gravatar Tomaz Canabrava
Restore the original color of the handler as soon as mouseRelease, also a bit of code cleanup. Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-06-20Added text to the rules so the user knows what's happening at that point.Gravatar Tomaz Canabrava
Added text to the rules, so the user knows what's happening at that point The text will move left / right ( for time ) and up / down ( for depth ) Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-06-20Added the code to set the Depth / Time on the user Handlers.Gravatar Tomaz Canabrava
Added the code to set the Depth / Time on the user handlers, I think this finishes the difficult part. ( well, not really ) the depth and time is being set when handler is added or moved, but as soon as the deco calculations enters on the code, the handlers will need to be repositioned - and this code is not ready yet. Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-06-20Added a 2 Ruler Items, Time and Depth.Gravatar Tomaz Canabrava
The ruler items are needed so I can get the correct coordinates of the planned dive. This is a very rudimentary ruler and it needs a bit of love, but it already gives me something to work on. Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-06-20Added the skeleton for the Ruler Item,Gravatar Tomaz Canabrava
The ruler will deliver the Time and the Depth, later. it should be vertical or horizontal, and will have ticks Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-06-20Make the plan handlers to not move across other handlers.Gravatar Tomaz Canabrava
This patch disables the hability to move handlers across the others, making a 'zigzag' in the time line. Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-06-20Added drag and drop code to the dive planGravatar Tomaz Canabrava
Added drag and drop code to the dive plan, it can move the user- inputted data, but will not touch the computer generated ones. Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-06-20Created a class DiveHandle to make drag drop work.Gravatar Tomaz Canabrava
Create d a class DiveHandle to make drag drop works, it has a from and to Lines, and it will move them around. Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-06-20Make the cross red when you cant plot a dive stopGravatar Tomaz Canabrava
Make the cross red when you cant plot a dive stop, also make impossible to put a dive stop before the last one. Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-06-20Better defaults for placement of dive stops.Gravatar Tomaz Canabrava
This patch makes it impossible to create a dive stop outside of the scene - this, messing the complete planning system. Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-06-20Created a cross that follows the mouse on the dive planner.Gravatar Tomaz Canabrava
Created a cross that follows the mouse on the dive planner, this will help the user to know where it is placing the stop. Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-06-20Fix creation of the poligon-based lines for the dive plannerGravatar Tomaz Canabrava
This fixes the creation of the poligon-based lines next thing to do is to forbit creation of the next point before the last one. Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-06-20Better handling of the scene size for the dive PlanGravatar Tomaz Canabrava
Better handling of the scene size for the dive plan, The scene can be resized and a transform will be applied, the handles will not resize however - they are 10x10px and that's it. Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>