This currently requires the wip/win branch of qtconnectivity. Eventually
this should be merged into upstream Qt.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
We are not OpenGL heavy so this saves battery life.
Signed-off-by: Robert C. Helling <helling@atdotde.de>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Build systems that run from tar balls and not git fail to create valid
.appdata.xml This solves the problem for tar balls that we create for
OBS via our own make-package script. It doesn't solve the problem for
Arch or Gentoo who I believe take our tar files created via git archive.
One way to fix this would be to change the process by which I create
those tar files, I guess.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
update testgitstorage.cpp to use qPrefProxy and qPrefCloudStorage
remove core/prefs-macros.h since it is unused
Signed-off-by: Jan Iversen <jani@apache.org>
Add class variable tooltip_position to qPrefDisplay
Add class variable lastDir to qPrefDisplay
qPrefDisplay is updated to use new qPrefPrivate functions
Adjust test cases incl. qml tests
qPrefAnimations only has 1 variable, that really is a display variable
Merge the variable into qPrefDisplay, to simplify setup (and avoid loading
extra page in qml).
correct theme to save in correct place, and make it a static
class variable
Signed-off-by: Jan Iversen <jani@apache.org>
Update set/get functions to follow common name scheme:
- get function have same name as in struct diveComputer
- set function have set_<name>
- signal function have <name>_changed
one class one .h/.cpp is the C++ idiom. Having load/sync of each
variable in 1 functions (in contrast to the distributed way
SettingsObjectWrapper handles it) secures the same storage name
is used. Having the set/get/load/sync functions grouped together
makes it easier to get an overview.
REMARK: this commit only defines the class, it is not active in production
Signed-off-by: Jan Iversen <jani@apache.org>
Update set/get functions to follow common name scheme:
- get function have same name as in struct diveComputer
- set function have set_<name>
- signal function have <name>_changed
one class one .h/.cpp is the C++ idiom. Having load/sync of each
variable in 1 functions (in contrast to the distributed way
SettingsObjectWrapper handles it) secures the same storage name
is used. Having the set/get/load/sync functions grouped together
makes it easier to get an overview.
REMARK: this commit only defines the class, it is not active in production
Signed-off-by: Jan Iversen <jani@apache.org>
Update set/get functions to follow common name scheme:
- get function have same name as in struct preferences
- set function have set_<name>
- signal function have <name>_changed
one class one .h/.cpp is the C++ idiom. Having load/sync of each
variable in 1 functions (in contrast to the distributed way
SettingsObjectWrapper handles it) secures the same storage name
is used. Having the set/get/load/sync functions grouped together
makes it easier to get an overview.
REMARK: this commit only defines the class, it is not active in production
Signed-off-by: Jan Iversen <jani@apache.org>
Update set/get functions to follow common name scheme:
- get function have same name as in struct preferences
- set function have set_<name>
- signal function have <name>_changed
one class one .h/.cpp is the C++ idiom. Having load/sync of each
variable in 1 functions (in contrast to the distributed way
SettingsObjectWrapper handles it) secures the same storage name
is used. Having the set/get/load/sync functions grouped together
makes it easier to get an overview.
REMARK: this commit only defines the class, it is not active in production
Signed-off-by: Jan Iversen <jani@apache.org>
Update set/get functions to follow common name scheme:
- get function have same name as in struct prefs
- set function have set_<name>
- signal function have <name>_changed
one class one .h/.cpp is the C++ idiom. Having load/sync of each
variable in 1 functions (in contrast to the distributed way
SettingsObjectWrapper handles it) secures the same storage name
is used. Having the set/get/load/sync functions grouped together
makes it easier to get an overview.
REMARK: this commit only defines the class, it is not active in production
Signed-off-by: Jan Iversen <jani@apache.org>
Update set/get functions to follow common name scheme:
- get function have same name as in struct diveComputer
- set function have set_<name>
- signal function have <name>_changed
one class one .h/.cpp is the C++ idiom. Having load/sync of each
variable in 1 functions (in contrast to the distributed way
SettingsObjectWrapper handles it) secures the same storage name
is used. Having the set/get/load/sync functions grouped together
makes it easier to get an overview.
REMARK: this commit only defines the class, it is not active in production
Signed-off-by: Jan Iversen <jani@apache.org>
Update set/get functions to follow common name scheme:
- get function have same name as in struct diveComputer
- set function have set_<name>
- signal function have <name>_changed
one class one .h/.cpp is the C++ idiom. Having load/sync of each
variable in 1 functions (in contrast to the distributed way
SettingsObjectWrapper handles it) secures the same storage name
is used. Having the set/get/load/sync functions grouped together
makes it easier to get an overview.
REMARK: this commit only defines the class, it is not active in production
Signed-off-by: Jan Iversen <jani@apache.org>
Update set/get functions to follow common name scheme:
- get function have same name as in struct diveComputer
- set function have set_<name>
- signal function have <name>_changed
one class one .h/.cpp is the C++ idiom. Having load/sync of each
variable in 1 functions (in contrast to the distributed way
SettingsObjectWrapper handles it) secures the same storage name
is used. Having the set/get/load/sync functions grouped together
makes it easier to get an overview.
REMARK: this commit only defines the class, it is not active in production
Signed-off-by: Jan Iversen <jani@apache.org>
This indents the code that is only executed when we aren't in 'quick'
mode. git show -w will show that there is no code change in this commit.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This allows us to skip all the checking / building of dependency
libraries. This also allows us to pass extra arguments to the make
command by separating them from the arguments to build.sh with '--'.
This commit is easier to understand because it didn't increase the
indent in the large block of code that is now only executed if we aren't
in 'quick' mode. That will be fixed in the next commit that is
whitespace only.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Switching to GitHub as source for libzip means that we need to encode
the version number differently. Newer versions of libzip don't compile
cleanly on Android and this one seems new enough.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Update set/get functions to follow common name scheme:
- get function have same name as in struct diveComputer
- set function have set_<name>
- signal function have <name>_changed
one class one .h/.cpp is the C++ idiom. Having load/sync of each
variable in 1 functions (in contrast to the distributed way
SettingsObjectWrapper handles it) secures the same storage name
is used. Having the set/get/load/sync functions grouped together
makes it easier to get an overview.
REMARK: this commit only defines the class, it is not active in production
Signed-off-by: Jan Iversen <jani@apache.org>
Update set/get functions to follow common name scheme:
- get function have same name as in struct prefs
- set function have set_<name>
- signal function have <name>_changed
one class one .h/.cpp is the C++ idiom. Having load/sync of each
variable in 1 functions (in contrast to the distributed way
SettingsObjectWrapper handles it) secures the same storage name
is used. Having the set/get/load/sync functions grouped together
makes it easier to get an overview.
REMARK: this commit only defines the class, it is not active in production
Signed-off-by: Jan Iversen <jani@apache.org>
Update set/get functions to follow common name scheme:
- get function have same name as in struct diveComputer
- set function have set_<name>
- signal function have <name>_changed
one class one .h/.cpp is the C++ idiom. Having load/sync of each
variable in 1 functions (in contrast to the distributed way
SettingsObjectWrapper handles it) secures the same storage name
is used. Having the set/get/load/sync functions grouped together
makes it easier to get an overview.
REMARK: this commit only defines the class, it is not active in production
Signed-off-by: Jan Iversen <jani@apache.org>
Update set/get functions to follow common name scheme:
- get function have same name as in struct diveComputer
- set function have set_<name>
- signal function have <name>_changed
one class one .h/.cpp is the C++ idiom. Having load/sync of each
variable in 1 functions (in contrast to the distributed way
SettingsObjectWrapper handles it) secures the same storage name
is used. Having the set/get/load/sync functions grouped together
makes it easier to get an overview.
REMARK: this commit only defines the class, it is not active in production
Signed-off-by: Jan Iversen <jani@apache.org>
Update set/get functions to follow common name scheme:
- get function have same name as in struct preferences
- set function have set_<name> (from struct preferences>)
- signal function have <name>_changed (from struct preferences>)
one class one .h/.cpp is the C++ idiom. Having load/sync of each
variable in 1 functions (in contrast to the distributed way SettingsObjectWrapper
handles it) secures the same storage name is used. Having the set/get/load/sync
functions grouped together makes it easier to get an overview.
REMARK: this commit only defines the class, it is not active in production
Signed-off-by: Jan Iversen <jani@apache.org>
Add qPrefPrivate class which contains one QSettings variable,
delete QSettings from qPref* class definitions
this secures there are only instance of QSettings
(QSettings needs to be in a QObject class to work)
Signed-off-by: Jan Iversen <jani@apache.org>
Update set/get functions to follow common name scheme:
- get function have same name as in struct preferences
- set function have set_<name in struct preferences>
- signal function have <name in struct preferences>_changed
one class one .h/.cpp is the C++ idiom. Having load/sync of each
variable in 1 functions (in contrast to the distributed way SettingsObjectWrapper
handles it) secures the same storage name is used. Having the set/get/load/sync
functions grouped together makes it easier to get an overview.
REMARK: this commit only defines the class, it is not active in production
Signed-off-by: Jan Iversen <jani@apache.org>
Move few mobile only functions from mobile-helper to mobile-main
remove subsurface-mobile-helper
file structure is now subsurface-*-main.cpp + subsurface-helper.cpp
Signed-off-by: Jan Iversen <jani@apache.org>
The versions for openSSL in variables.sh and get-dep-lib.sh needs to match or we end up recloning the repo on every build.
Signed-off-by: Joakim Bygdell <j.bygdell@gmail.com>
Add a comment to the variables.sh file so we don't forget to update
qt version in the qt-installer-nontineractive file as well.
Signed-off-by: Joakim Bygdell <j.bygdell@gmail.com>
Instead of dealing with the challenges of downloading and installing the
official package (which really prefers to be run interactively and
frequently caused Travis failures) we get the pre-packed bits from our
cache instead. Less data to transfer, quicker install.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
copy Display from SettingsObjectWrapper to qPref as its own class
file. Update Display to use a common load/sync scheme.
Update set/get functions to follow common name scheme:
- get function have same name as in struct preferences
- set function have set_<name in struct preferences>
- signal function have <name in struct preferences>_changed
one class one .h/.cpp is the C++ idiom. Having load/sync of each
variable in 1 functions (in contrast to the distributed way SettingsObjectWrapper
handles it) secures the same storage name is used. Having the set/get/load/sync
functions grouped together makes it easier to get an overview.
REMARK: this commit are made to show the use of the low level LOADSYNC macros, which will
be used for special cases. This class is NOT linked into the live system.
Signed-off-by: Jan Iversen <jani@apache.org>
Update the scripts used to build subsurface-mobile for
andriod to use the variables file.
Removed checks for obsolete Qt versions.
Signed-off-by: Joakim Bygdell <j.bygdell@gmail.com>
This adds a file that contains the variables used in
the android-build-wrapper and build scripts.
This gives a single location for setting which versions
of Qt, NDK and SDK we use when building the mobile app on linux.
Signed-off-by: Joakim Bygdell <j.bygdell@gmail.com>
commit ec0511e824 ("ios: concentrate build dirs") moved the translations around
without updating the way they are accessed, causing our release 2.1.0 on iOS to
not be localized.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
add 2 header files and 1 cpp file (qPrefPrivate does not have an implementation)
The rewrite/consoliadation of SettingsObjectWrapper, qmlmanager, qmlpref and planner
needs a place to put common private parts (qPrefPrivate) and 1 common class (qPref).
Signed-off-by: Jan Iversen <jani@apache.org>
But simply ignore when building outside of Travis.
Of course since we are building Android in a container, we need to first pass
the environment variable to the container...
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
remove MapWidget entries from mobile-resources.qrc, and
reference map-widget.qrc in Subsurface-mobile.pro for iOS
Signed-off-by: Jan Iversen <jani@apache.org>
-all will build debug and release for the choosen architectures
armv7,arm64,x86_64 without extra parameter and only
x86_64 with -simulator
Use -all to prebuild all 6 variants we support.
Signed-off-by: Jan Iversen <jani@apache.org>
helpers.h included qthelper.h and all functions declared in helpers.h
were defined in qthelper.h. Therefore fold the former into the latter,
since the split seems completely arbitrary.
While doing so, change the return-type of get_dc_nichname from
"const QString" to "QString".
Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
The text and icon was so low, that the page started to scroll on
an iPhone (at least on a model 6s).
Anchored Text to top, and icon to text.
Signed-off-by: Jan Iversen <jani@apache.org>
Having a split between ios and ios/Subsurface-mobile is just confusing
and without a practical reason
Move files from ios/Subsurface-mobile to ios and update .gitignore
Signed-off-by: Jan Iversen <jani@apache.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Changed .pro file to supress warnings
clang does not allow all of the issued warnings to be
supressed with -Wno-foo, so instead doing -w
Signed-off-by: Jan Iversen <jani@apache.org>
The Qt libraries are compiled as iOS 10.0, we link
as iOS 8.0, this is a problem waiting to happen. First
time we use a Qt function that uses a iOS 10.0 specific
function the app will crash.
Bumping iOS minimum version from 8.0 to 10.0
Removing the 76x icon, which are not valid from 10.0 and forward
Signed-off-by: Jan Iversen <jani@apache.org>
And replace it with something that works on a modern cmake.
The upside with using the right linker, we get the symbols resolved
correctly so we don't need to regex the code.
Signed-off-by: Anton Lundin <glance@acc.umu.se>
Since about a year ago qt-android-cmake shifted to using gradle instead
of ant, and the android sdk's stopped supporting ant to.
Signed-off-by: Anton Lundin <glance@acc.umu.se>
This simplifies the code and uses correct quoting for variables.
This also fixes the sha1-stampfile handling so that we don't build
libdivecomputer every time.
Signed-off-by: Anton Lundin <glance@acc.umu.se>
This reworks the googlemaps build to be more like the other builds, with
the same pattern and way of detecting what we need to do, and when we
need to rebuild it.
Signed-off-by: Anton Lundin <glance@acc.umu.se>
We already have a variable pointing to the source dir for subsurface, so
use it.
This way we can build out of tree, in any directory.
Signed-off-by: Anton Lundin <glance@acc.umu.se>
Info.plist is no longer generated by qmake but by build.sh,
and it is more interesting to highlight the fact that it is
open software
Signed-off-by: Jan Iversen <jani@apache.org>
Made versioning identical to scripts/build.sh
Having the same version of 3rd party libraries across platforms
secures a more stable product.
Signed-off-by: Jan Iversen <jani@apache.org>
script/build.sh uses the builtin libxml2 and do not build locally,
updated build.sh and Subsurface-mobile.pro to to the same.
sadly enough xslt is not distributed for iOS so it must be built.
Apart from simplifying the script it saves build time
Signed-off-by: Jan Iversen <jani@apache.org>
script/build.sh uses the builtin sqllite3 and do not build locally,
updated build.sh and Subsurface-mobile.pro to to the same.
Apart from simplifying the script it saves build time
Signed-off-by: Jan Iversen <jani@apache.org>
In a "virgin" repo incl. libdivecomputer, starting by running
ios/build.sh caused an error in libdivecomputer,
because autoreconf was never run.
Changed build.sh to check if libdivecomputer/configure exist, if
not run autoreconf
Signed-off-by: Jan Iversen <jani@apache.org>
This patch allows users to set a bundle identifier,
without opening Xcode (set as env. variable).
If the env. variable is not set (like e.g. on Travis) it defaults
to org....
Signed-off-by: Jan Iversen <jani@apache.org>
We used to hard-code the bundle ID which meant that developers always had to
manually override the bundle ID in order to be able to sign the iOS app for
local testing. With this change, the official builds will continue to work
without manually opening the project in Xcode, yet other developers will use
the Apple-recommended format in order to set their own bundle ID.
This is based on a suggestion by Murillo Bernardes.
See #1246
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Use git repos and checkout corresponding tags where possible.
Use more reliable servers to download source from.
[Dirk Hohndel: refactored Jan's original commit in #1241]
Signed-off-by: Jan Iversen <jani@apache.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Updated INSTALL to point at packaging/ios/README
Updated README to 'facts'
Deleted ios_build_instructions as they are covered in README
[Dirk Hohndel: refactored Jan's original commit in #1241]
Signed-off-by: Jan Iversen <jani@apache.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
It makes sense to be able to control this with command line options.
On Travis this avoids the signing problem and makes the build much faster.
Still should be enough to catch iOS breakage.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Xcode happily accepted the incorrect plist syntax for a boolean and the app
did the right thing when installed locally - but once you upload to the
iTunes store the error causes that to fail.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
By creating it in the Documents path and setting the two magic keys,
iOS will make the log file available to the user.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Up until now we just reused the macos.c file for convenience, hard coding a
specific file path that may or may not work on iOS. Instead get the preferred
path from Qt and for this we need to be able to call into Qt, so this needs to
be a C++ file.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
qthelper.cpp is already quite voluminous. Move the recently
introduced localized versions of (v)snprintf() and put_format()
into their own translation unit.
Moreover, adopt C-style semantics for asprintf_loc(). This function
will be used to remove fixed-size buffers in core/plannernotes.c.
Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
googlemaps archive is a fat file already, containing
armv7, arm64 and x86-64, so no need to build it
multiple times.
Signed-off-by: Murillo Bernardes <mfbernardes@gmail.com>
In the comment/instruction how to build MXE add "libssh2" and "curl"
to the make call. This seems to be needed in newer versions of MXE.
Signed-off-by: Stefan Fuchs <sfuchs@gmx.de>
The xmlsoft.org links sometimes time out. Sadly, GitHub API gives us an
oddly named top level directory in the tar file, so lets strip that and
replace it with the "usual" name.
Also, for the "raw" tar files from GitHub we need to run autoreconf
ourselves.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Since all qt-helpers are defined in qthelper.cpp, there seems to be
no reason to have two include files. By unifying the two files,
duplication and inconsistencies are removed. The C++-only part is
simply compiled away with #ifdefs.
Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Prepare the building script to suport travis or set other automated
builds, while keeping other options to manual builds.
In before_install script, create needed directories, and dowload
mdbtools sources.
Add smtk2ssrf build script to travisbuild.sh
Signed-off-by: Salvador Cuñat <salvador.cunat@gmail.com>
At least, now the Travis builds use the same Qt version as the
production builds from Dirk that go to the AppStores.
Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
For some reason it suddenly cannot figure out which build program
to use. This seems like a weird hack, but works.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Since it's the SDK where things are failing, doing it this way makes the
turnaround time of my attempts to fix this faster. And in the larger
scheme of things, the order is irrelevant.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
I clearly had forgotten to update the Android specific scripts when
adding the libdivecomputer submodule.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
If the submodule isn't initialized, run git submodule init before
running submodule update. Also, ensure that the autotools are set up.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This way we can avoid having to use Qt Creator (in preparation for
eventually testing the iOS build in Travis CI).
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
The build process uses the dummy.qml file to determine which QML modules
to package. This ensures that Subsurface-mobile includes all its
dependencies.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>