Commit graph

164 commits

Author SHA1 Message Date
Thiago Macieira
83309d9369 Move the list of objects a little further up
This also implies we don't need the OSSUPPORT variable anymore. We
simply add to OBJS.

Signed-off-by: Thiago Macieira <thiago@macieira.org>
2013-04-23 00:06:31 -07:00
Thiago Macieira
e9ec2dcc45 Split the SQLite3, libzip, libxslt and osmgpsmap detection from use
Signed-off-by: Thiago Macieira <thiago@macieira.org>
2013-04-23 00:06:31 -07:00
Thiago Macieira
d326a91c86 Move some of the checks a little bit up
Signed-off-by: Thiago Macieira <thiago@macieira.org>
2013-04-23 00:06:31 -07:00
Tomaz Canabrava
9ffb707d9d Initial version of the Star Picker Widget.
A very simple to use widget:
StarWidget *stars = new StarWidget( windowParent);
stars->setMaximumStars(10);
stars->setCurrentStars( rand()%10);
stars->show();
connect(stars, SIGNAL(valueChanged(int)), someObj, SLOT(starsChangedValue(int)));

It currently uses a 'star.svg' file on the same folder as the binary.

Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-04-22 16:09:21 -07:00
Tomaz Canabrava
a0280ae7d2 Move model related code from MainWindow and adjustments.
Moves the DiveTrip model related code to models.h

The DiveTripModel was implemented in three parts:

 DiveTripModel.h
 DiveTripModel.cpp
 MainWindow.cpp (the code to populate the model)

This patch changes the DiveTripModel from it's original
implementation to the file models.h, wich should store
all models (Dirk requested the Qt developers to not create
2 files per class, but instead to use a file for functionality,
and data-models are one functionality.)

Besides that, this code cleans up a bit the style:
removed operator<< for .push_back, const references where they apply,
moved the internal DiveItem class to the .cpp since it should be visible
only to the DiveTripModel class, and redesigned the current interface of
the model to be identical of the GTK one (used the UTF8-star and 2
subscribed, for instance).

Amit (the creator of the original code) should comment here if it's ok
with my changes.

Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-04-22 09:42:13 -07:00
Tomaz Canabrava
115ee47bfc Added the code that will load and populate the Tank Info
Added the code that will load and populate the Tank Info
ComboBox that`s used by the user to select the Cylinder
description.

Code curerntly implements more than the GTK version since
the GTK version of it was a plain-list, this one is a
table based model that can be used in ListViews ( like
we use now in the ComboBox ) but also in TableViews
( if there`s a need in the future to see everything
that`s catalogued in the Tank Info struct. )

Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-04-15 17:34:44 -07:00
Dirk Hohndel
944d286132 Separate Gtk related code from core logic: statistics
Fairly straight forward, so far just one tiny bit of code restructuring,
everything else separated cleanly.

Added statistics-gtk.c and statistics.h

This should make no difference to functionality.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-04-14 20:25:34 -07:00
Dirk Hohndel
4c73c70ecb Separate Gtk related code from core logic: info
Surprisingly straight forward, just a couple of places where we really mix
significant logic with UI code (for example setting the window title).

I had to move amount_selected from display-gtk.h to display.h - I guess
the number of dives that are selected is UI independent. But I wonder if
we still will track this as a global variable in a Qt UI (since the Gtk
selection logic is the main reason this existed in the first place).

Added a new info.h files for the necessary declarations.

This should make no difference to functionality.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-04-14 11:39:29 -07:00
Dirk Hohndel
d8e11439ad Undoing the last Qtr_ hack
The Qtr_ hack isn't needed as in commit 720fc15b2dcd ("Introduce
QApplication") had already made sure that we are using gettext.

I didn't revert the two commits as I wanted to keep the added header
comments and fix the tooling in the Makefile as well.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-04-14 06:58:56 -07:00
Dirk Hohndel
f5c958ad73 Add Qtr_ macros that uses gettext in a tr() compatible manner
This should wrap gettext nicely and replace the "_()" macros we use in C
code.

Also added comments to the top of all the new files.

Suggested-by: Thiago Macieira <thiago@macieira.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-04-13 20:44:02 -07:00
Thiago Macieira
14e133321f Remove the mandatory -fPIC from CXXFLAGS
This isn't necessary. There's code below adding -fPIE when necessary
only.

Signed-off-by: Thiago Macieira <thiago@macieira.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-04-13 19:38:09 -07:00
Tomaz Canabrava
92397a2bad Started the real code on the Qt Interface.
1 - Open File already open files, it tries to not break the Gtk version,
    but some methods on the GTK version still need to be called inside Qt
    because the code is too tight-coupled.

2 - Close file already close files, same comments for the open file dialog
    applies here.

3 - The code for adding new cylinders in the cylinder dialog is done,
    already works and it's integrated with the system.  There's a need to
    implement the edit and delete now, but it will be easyer since I'm
    starting to not get lost on the code.

4 - Some functions that were used to convert unities have been moved to
    convert.h ( can be changed later, put there because it's easyer to
    find something that converts in a convert.h =p ) because they were
    static functions that operated in the GTK version but I need those
    functions in the Qt version too.

[Dirk Hohndel: lots and lots of whitespace and coding style changes]

Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-04-13 14:08:16 -07:00
Amit Chaudhuri
76f71b4ca0 Add dive list view to main window
Add files for dive list model/view implementation. Replace TableView
with the custom list view.  Amendments to makefile to match.

Note: we don't yet handle trips and may want to add additional columns
to describe the dive.

A single, dummy dive is added to show how this works (get root; item is
child of root). Purely to illustrate - needs proper integration etc.

Amend member names for dive list view components

Various naming changes to conform to coding style. Required changes to
members (remove prefix) and methods (avoid clash with members).

Clean up indentation (swap spaces for tabs). Code for model/view was
written with a different editor which had different settings :-/

[Dirk Hohndel: minor whitespace cleanup]

Signed-off-by: Amit Chaudhuri <amit.k.chaudhuri@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-04-12 12:54:08 -07:00
Alberto Mardegan
99153de715 Makefile: detect which files need moc and uic
Add some magic rules to detect which files need to be processed by the
moc or uic tools, as well as a way to manually specify exceptions.

Signed-off-by: Alberto Mardegan <mardy@users.sourceforge.net>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-04-09 19:54:41 -07:00
Dirk Hohndel
1d02ba12a3 Separate Gtk related code from core logic: planner
Relatively straight forward, just a handful of places where we call
show_error() (a UI function) from the logic code. In the process I noticed
a few places where error returns weren't dealt with correctly.

Added a new planner.h files for the necessary declarations.

This should make no difference to functionality.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-04-07 20:22:41 -07:00
Tomaz Canabrava
ba712c3b54 Start creating the Qt UI
This is based on several commits from Tomaz - mingled together and mildly
extended by Dirk (mostly Makefile hacking).

All Qt UI related stuff should eventually move into the qt-ui directory.
So the Makefile rules for moc and uic have been adjusted accordingly.

The MainWindow class has been moved into its own file in qt-ui (but just
with a placeholder, the existing class has simply been ifdef'ed out in
qt-gui.cpp for the moment).

We still have a couple of Qt things in qt-gui.cpp in the main directory...
all this needs to move into the qt-ui directory and be built with separate
.h files. Right now we have the one-off Makefile rule to create the
qt-gui.moc file from the qt-gui.cpp file.

Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-04-07 15:59:33 -07:00
Dirk Hohndel
1d61955be9 Separate Gtk related code from core logic: divelist
This is simplistic & brute force: any function that touches Gtk related
data structures is moved to divelist-gtk.c, everything else stays in
divelist.c.

Header files have been adjusted so that this still compiles and appears to
work. More thought is needed to truly abstract this out, but this seems to
be a good point to commit this change.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-04-06 20:49:06 -07:00
Alberto Mardegan
a412753b0a Add a Qt main window
This is just an empty window with a File menu and a few items.
It shows how to hook up functions to menu actions.

Signed-off-by: Alberto Mardegan <mardy@users.sourceforge.net>
2013-04-02 19:55:53 +03:00
Alberto Mardegan
40e3671bd2 Improve Makefile rules for running moc
The previous rules were conflicting, and the naming of the moc-generated
file to be included in .cpp files was deviating from what's most used in
Qt: the usual way is to
  #include "file.moc"
and not
  #include "file.moc.cpp"

Signed-off-by: Alberto Mardegan <mardy@users.sourceforge.net>
2013-04-01 23:11:25 +03:00
Alberto Mardegan
b5b14f1d95 Define QT_NO_KEYWORDS
This prevents Qt headers from defining macro symbols such as "emit" and
"signals", therefore avoiding conflicts when struct members with the
same names are defined in some C header.

Signed-off-by: Alberto Mardegan <mardy@users.sourceforge.net>
2013-04-01 23:07:47 +03:00
Alberto Mardegan
7ea2281180 Introduce QApplication
Instantiate a QApplication and let Qt handle the event loop.
Add a QTranslator subclass to translate the UI via gettext.

Signed-off-by: Alberto Mardegan <mardy@users.sourceforge.net>
2013-04-01 16:03:59 +03:00
Alberto Mardegan
578d633d01 Have some C++ file in the project
Rename gtk-gui.c to qt-gui.cpp, and make the necessary changes so that
the project still builds.

Signed-off-by: Alberto Mardegan <mardy@users.sourceforge.net>
2013-04-01 16:03:59 +03:00
Alberto Mardegan
42365ede79 Setup Makefile for Qt/C++ builds
Setup the build variables for building with QtWidgets, and add rules for
processing the Q_OBJECT macros with moc and generate widget code from
.ui files with uic.

Signed-off-by: Alberto Mardegan <mardy@users.sourceforge.net>
2013-04-01 16:03:43 +03:00
Henrik Brautaset Aronsen
9187415124 Revert "Only include .po files that has a companion .aliases file"
Commit 6044c22741 wrongly assumed that a disabled .po file had a companion
.disabled file instead of an .aliases file.

Running make after "tx pull -af" generated errors which I tried to fix.  I
shouldn't have, because the Makefile did the right thing. It warned about a
missing .aliases file for a brand new translation.

So, I'm reverting the commit and use "tx pull -f" instead the next time I
need to test existing translations.

Signed-off-by: Henrik Brautaset Aronsen <subsurface@henrik.synth.no>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-03-14 06:55:24 -07:00
Henrik Brautaset Aronsen
6044c22741 Only include .po files that has a companion .aliases file
Disabled translations have a .disabled file instead of
an .aliases file.  Without this patch I couldn't make
subsurface after a tx pull (when testing translations).

This patch makes the .aliases file an explicit requirement
for a valid translation.

Signed-off-by: Henrik Brautaset Aronsen <subsurface@henrik.synth.no>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-03-13 23:27:01 -07:00
Sylvestre Ledru
87fe20600f Fix the build under Kfreebsd & HURD.
Ensure that Kfreebsd and HURD are recognized as "like Linux"

Signed-off-by: Sylvestre Ledru <sylvestre@debian.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-03-12 21:50:45 -07:00
Miika Turkia
a94f7807f8 Limited support for Suunto DM4 import
Basic functionality is implemented but at least support for multiple
cylinders is missing. Event/alarm support is only partial.

Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-03-04 22:08:03 -08:00
Sylvestre Ledru
134355cb63 Fix the permission of the ICONFILE and the locale files
Lintian, the Debian package static analyzer, was complaining about the
"wrong" permissions on these files.

Signed-off-by: Sylvestre Ledru <sylvestre@debian.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-03-04 09:11:56 -08:00
Dirk Hohndel
a5a3e0a72e Update README, ReleaseNotes and Makefile for 3.0.2
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-03-03 23:49:32 -08:00
Kévin Raymond
cfdde3ff63 Move translations to transifex.com
Translation management is done through Transifex now for easy translations.
Translators should note that fuzzy strings are not used any more since
Transifex does not handle it (by choice).

In order to pull translations, you need a transifex.com account.

Signed-off-by: Kévin Raymond <shaiton@fedoraproject.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-28 15:25:47 -08:00
Dirk Hohndel
6855be0f1c OSX: also need to add the CoreServices framework to linker
We had this before - it appears that some versions of OSX need us to explicitly
list the frameworks we are using during the linking stage while others are
perfectly happy without that. But since listing them doesn't appear to hurt
this commit should be safe.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-28 05:56:23 -08:00
Cristian Ionescu-Idbohrn
eb3376d612 Suppress the "/bin/sh: 1: cannot open version.h: No such file" noise.
Signed-off-by: Cristian Ionescu-Idbohrn <cristian.ionescu-idbohrn@axis.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-27 07:44:10 -08:00
Cristian Ionescu-Idbohrn
6a29da800b Add target `all' to avoid "target order is important" confusion.
Signed-off-by: Cristian Ionescu-Idbohrn <cii@axis.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-27 07:43:57 -08:00
Dirk Hohndel
fd9a927ded Update versions to 3.0.1
almost forgot

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-26 12:57:59 -08:00
Dirk Hohndel
1fd2091759 Get make to rebuild Subsurface by default again
To quote Linus:

  Move the rule for the new version thing down.

  Plain "make" will try to make the first target in the Makefile.

Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-26 12:19:01 -08:00
Cristian Ionescu-Idbohrn
42fa5a6368 Generate/update a version.h header file.
This is dedicated to Lubomir ;)

Should work (tm).  Not sure though if you want target
'gen_version_file' as a pre-requisite to $(NAME) or some other target.

[Dirk Hohndel: minor adjustments to make it work with gtk-gui.c]

Signed-off-by: Cristian Ionescu-Idbohrn <cristian.ionescu-idbohrn@axis.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-26 10:47:04 -08:00
Dirk Hohndel
ce659407a8 Add correct XSLT search path for Windows
And report error if XSLT stylesheet not found

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-22 11:20:46 -08:00
Dirk Hohndel
59a39e4901 Updating versions for 3.0
Most of the actual version numbers are derived from the git tag, but we do
have the fallback hard-coded in the Makefile (e.g. for people building
from a source tar-ball).

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-20 21:54:16 -08:00
Cristian Ionescu-Idbohrn
727ee3aa98 Unified handling of version extraction.
Removed oddly named and ridiculously outdated documentation text (scripts).

Created new directory 'scripts'.

Added unified version extraction script (scripts/get-version). Yes, it's
more shell script code but faster and more maintainable than the sed commands
and the swearwords/regexps repeated over and over again.

Makefile and packaging/macosx/make-package.sh modified accordingly.

I don't do windos neither macos but, AFAICS my tests show, it should be safe.

Signed-off-by: Cristian Ionescu-Idbohrn <cristian.ionescu-idbohrn@axis.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-16 15:41:58 -08:00
Dirk Hohndel
41256531b8 Further automization of the Mac build process
This improves the Plist.info and automates the version data that it uses
utilizing the same git magic that the Makefile uses.

It also makes the complete DMG creation a matter of simply running
packaging/macosx/make-package.sh

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-15 22:30:02 -08:00
Dirk Hohndel
0972d0c13e Fix sha1 build for Windows
This works at least when cross compiling.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-15 19:53:07 -08:00
Linus Torvalds
a0558a87b4 Get the SHA1 routines from git instead of openssl
..they are of a higher quality anyway, and this way we have one less
library to worry about.  And this way there is nobody who can claim that
openssl is not a system library and thus not compatible with the GPL.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-15 19:26:39 -08:00
Dirk Hohndel
249482cf2f Add support for signing Mac applications to the Makefile
Maybe I should comment out the target that requires my private key to work...

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-14 09:19:28 -08:00
Dirk Hohndel
16dda3ec12 New Makefile target to create smaller diffs for translations
Simply run

make prepare-po-files

and msgcat will be run over all po files to create consistent location
references. That plus the change I made earlier to how we update the po
files should create much smaller and easier to read diffs for translators.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-09 10:52:01 -08:00
Dirk Hohndel
9d9eff718b Hopefully last change to po files
While this is a pain for everyone, I decided not to edit out the code
reference noise - after all this is supposed to help translators find
where the text is used in case it's unclear how to translate something.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-09 10:39:11 -08:00
Henrik Brautaset Aronsen
312f553aee Enable XSLT transforms on OSX
We still need proper paths and install options for the install-macosx
and create-macosx-bundle targets.  This enables XSLT support when
running as ./subsurface, but doesn't hurt the other install targets.

Signed-off-by: Henrik Brautaset Aronsen <subsurface@henrik.synth.no>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-09 09:48:16 -08:00
Henrik Brautaset Aronsen
eb7acc1d96 Add XSLT support for the macosx install and bundle targets
Works like it should for the install-macosx target.  I haven't tested
the create-macosx-bundle target, but it shouldn't be any different.

Signed-off-by: Henrik Brautaset Aronsen <subsurface@henrik.synth.no>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-09 09:44:51 -08:00
Henrik Brautaset Aronsen
ce87c26c00 Move about icon to include file
Getting the about icon to display in various scenarios on MacOSX
was a pain.  Moving the icon to an include file solved the problem.

This commit also fixes the problem Dirk was having when converting
satellite.svg to a png in commit cf3c0266c2.  I couldn't
quite get ImageMagick to preserve transparency and color when
converting subsurface-icon.svg, though, so I used Gimp instead.

Signed-off-by: Henrik Brautaset Aronsen <subsurface@henrik.synth.no>
2013-02-02 21:27:19 +01:00
Henrik Brautaset Aronsen
459130009b Rename subsurface.svg to subsurface-icon.svg
In preparation for a subsurface-icon.h, this should avoid confusion
about whether "subsurface.h" is a core header file.

Signed-off-by: Henrik Brautaset Aronsen <subsurface@henrik.synth.no>
2013-02-02 21:27:15 +01:00
Dirk Hohndel
29e73be9f2 Fix the rules for creating the windows .nsi file
This was one of the reasons why I tagged version 2.9. I wanted to test all
the Makefile magic we added to get sane and automated versions on Windows
and Linux. And it turned out my sed script failed in rather obvious ways.

These changes appear to fix that - but of course you won't see that unless
you reset your git repository to the tag and manually apply this patch.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-01 18:06:13 +11:00