mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-30 22:20:21 +00:00
Merge branch 'master' into dependabot/docker/scripts/docker/mxe-build-container/ubuntu-24.04
This commit is contained in:
commit
953ff85dd4
33 changed files with 57 additions and 468 deletions
2
.github/workflows/android.yml
vendored
2
.github/workflows/android.yml
vendored
|
@ -18,7 +18,7 @@ jobs:
|
||||||
KEYSTORE_FILE: ${{ github.workspace }}/../subsurface.keystore
|
KEYSTORE_FILE: ${{ github.workspace }}/../subsurface.keystore
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container:
|
container:
|
||||||
image: docker://subsurface/android-build:5.15.2
|
image: docker://subsurface/android-build:5.15.3
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: checkout sources
|
- name: checkout sources
|
||||||
|
|
1
.github/workflows/linux-debian-generic.yml
vendored
1
.github/workflows/linux-debian-generic.yml
vendored
|
@ -95,6 +95,5 @@ jobs:
|
||||||
echo "--------------------------------------------------------------"
|
echo "--------------------------------------------------------------"
|
||||||
echo "building smtk2ssrf"
|
echo "building smtk2ssrf"
|
||||||
|
|
||||||
# build smtk2ssrf (needs the artefacts generated by the subsurface build
|
|
||||||
cd ..
|
cd ..
|
||||||
bash -e -x subsurface/scripts/smtk2ssrf-build.sh -y
|
bash -e -x subsurface/scripts/smtk2ssrf-build.sh -y
|
||||||
|
|
4
.github/workflows/snap_usns.yml
vendored
4
.github/workflows/snap_usns.yml
vendored
|
@ -14,7 +14,7 @@ jobs:
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Set up Python
|
- name: Set up Python
|
||||||
uses: actions/setup-python@v4
|
uses: actions/setup-python@v5
|
||||||
with:
|
with:
|
||||||
python-version: '3.11'
|
python-version: '3.11'
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@ jobs:
|
||||||
sudo snap install review-tools --edge
|
sudo snap install review-tools --edge
|
||||||
|
|
||||||
- name: Set up Launchpad credentials
|
- name: Set up Launchpad credentials
|
||||||
uses: DamianReeves/write-file-action@v1.2
|
uses: DamianReeves/write-file-action@v1.3
|
||||||
with:
|
with:
|
||||||
path: lp_credentials
|
path: lp_credentials
|
||||||
contents: ${{ secrets.LAUNCHPAD_CREDENTIALS }}
|
contents: ${{ secrets.LAUNCHPAD_CREDENTIALS }}
|
||||||
|
|
|
@ -52,6 +52,7 @@ option(NO_USERMANUAL "don't include a viewer for the user manual" OFF)
|
||||||
#Options regarding enabling parts of subsurface
|
#Options regarding enabling parts of subsurface
|
||||||
option(BTSUPPORT "enable support for QtBluetooth" ON)
|
option(BTSUPPORT "enable support for QtBluetooth" ON)
|
||||||
option(FTDISUPPORT "enable support for libftdi based serial" OFF)
|
option(FTDISUPPORT "enable support for libftdi based serial" OFF)
|
||||||
|
option(LIBRAW_SUPPORT "enable support for LibRaw images" ON)
|
||||||
|
|
||||||
# Options regarding What should we build on subsurface
|
# Options regarding What should we build on subsurface
|
||||||
option(MAKE_TESTS "Make the tests" ON)
|
option(MAKE_TESTS "Make the tests" ON)
|
||||||
|
@ -169,10 +170,6 @@ if(NOT ANDROID)
|
||||||
pkg_config_library(LIBRAW libraw )
|
pkg_config_library(LIBRAW libraw )
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(LIBRAW_FOUND)
|
|
||||||
add_definitions(-DLIBRAW_SUPPORT)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
include_directories(.
|
include_directories(.
|
||||||
${CMAKE_CURRENT_BINARY_DIR}
|
${CMAKE_CURRENT_BINARY_DIR}
|
||||||
${CMAKE_BINARY_DIR}
|
${CMAKE_BINARY_DIR}
|
||||||
|
@ -300,6 +297,7 @@ elseif (SUBSURFACE_TARGET_EXECUTABLE MATCHES "DownloaderExecutable")
|
||||||
set(SUBSURFACE_TARGET subsurface-downloader)
|
set(SUBSURFACE_TARGET subsurface-downloader)
|
||||||
endif()
|
endif()
|
||||||
set(BTSUPPORT ON)
|
set(BTSUPPORT ON)
|
||||||
|
set(LIBRAW_SUPPORT OFF)
|
||||||
add_definitions(-DSUBSURFACE_DOWNLOADER)
|
add_definitions(-DSUBSURFACE_DOWNLOADER)
|
||||||
message(STATUS "building the embedded Subsurface-downloader app")
|
message(STATUS "building the embedded Subsurface-downloader app")
|
||||||
endif()
|
endif()
|
||||||
|
@ -363,6 +361,14 @@ if(BTSUPPORT)
|
||||||
add_definitions(-DBLE_SUPPORT)
|
add_definitions(-DBLE_SUPPORT)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if (LIBRAW_SUPPORT)
|
||||||
|
if(LIBRAW_FOUND)
|
||||||
|
add_definitions(-DLIBRAW_SUPPORT)
|
||||||
|
endif()
|
||||||
|
else()
|
||||||
|
message(STATUS "building without built-in libraw support")
|
||||||
|
endif()
|
||||||
|
|
||||||
if(ANDROID)
|
if(ANDROID)
|
||||||
# when building for Android, the toolchain file requires all cmake modules
|
# when building for Android, the toolchain file requires all cmake modules
|
||||||
# to be inside the CMAKE_FIND_ROOT_PATH - which prevents cmake from finding
|
# to be inside the CMAKE_FIND_ROOT_PATH - which prevents cmake from finding
|
||||||
|
|
|
@ -11,7 +11,7 @@ buildscript {
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
classpath 'com.android.tools.build:gradle:3.2.1'
|
classpath 'com.android.tools.build:gradle:3.5.4'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -28,8 +28,8 @@ apply plugin: 'com.android.application'
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation fileTree(dir: 'libs', include: ['*.jar'])
|
implementation fileTree(dir: 'libs', include: ['*.jar'])
|
||||||
implementation 'com.github.mik3y:usb-serial-for-android:v3.4.3'
|
implementation 'com.github.mik3y:usb-serial-for-android:v3.8.0'
|
||||||
implementation 'com.android.support:support-v4:25.3.1'
|
implementation 'com.android.support:support-v4:28.0.0'
|
||||||
}
|
}
|
||||||
|
|
||||||
android {
|
android {
|
||||||
|
|
|
@ -439,7 +439,7 @@ static void cochran_parse_samples(struct dive *dive, const unsigned char *log,
|
||||||
{
|
{
|
||||||
const unsigned char *s;
|
const unsigned char *s;
|
||||||
unsigned int offset = 0, profile_period = 1, sample_cnt = 0;
|
unsigned int offset = 0, profile_period = 1, sample_cnt = 0;
|
||||||
double depth = 0, temp = 0, depth_sample = 0, psi = 0, sgc_rate = 0;
|
double depth = 0, temp = 0, depth_sample = 0, psi = 0;
|
||||||
//int ascent_rate = 0;
|
//int ascent_rate = 0;
|
||||||
unsigned int ndl = 0;
|
unsigned int ndl = 0;
|
||||||
unsigned int in_deco = 0, deco_ceiling = 0, deco_time = 0;
|
unsigned int in_deco = 0, deco_ceiling = 0, deco_time = 0;
|
||||||
|
@ -457,8 +457,6 @@ static void cochran_parse_samples(struct dive *dive, const unsigned char *log,
|
||||||
+ log[CMD_START_DEPTH + 1] * 256) / 4;
|
+ log[CMD_START_DEPTH + 1] * 256) / 4;
|
||||||
temp = log[CMD_START_TEMP];
|
temp = log[CMD_START_TEMP];
|
||||||
psi = log[CMD_START_PSI] + log[CMD_START_PSI + 1] * 256;
|
psi = log[CMD_START_PSI] + log[CMD_START_PSI + 1] * 256;
|
||||||
sgc_rate = (double)(log[CMD_START_SGC]
|
|
||||||
+ log[CMD_START_SGC + 1] * 256) / 2;
|
|
||||||
profile_period = log[CMD_PROFILE_PERIOD];
|
profile_period = log[CMD_PROFILE_PERIOD];
|
||||||
break;
|
break;
|
||||||
case TYPE_COMMANDER:
|
case TYPE_COMMANDER:
|
||||||
|
@ -533,9 +531,6 @@ static void cochran_parse_samples(struct dive *dive, const unsigned char *log,
|
||||||
case 2: // PSI change
|
case 2: // PSI change
|
||||||
psi -= (double)(s[1] & 0x7f) * (s[1] & 0x80 ? 1 : -1) / 4;
|
psi -= (double)(s[1] & 0x7f) * (s[1] & 0x80 ? 1 : -1) / 4;
|
||||||
break;
|
break;
|
||||||
case 1: // SGC rate
|
|
||||||
sgc_rate -= (double)(s[1] & 0x7f) * (s[1] & 0x80 ? 1 : -1) / 2;
|
|
||||||
break;
|
|
||||||
case 3: // Temperature
|
case 3: // Temperature
|
||||||
temp = (double)s[1] / 2 + 20;
|
temp = (double)s[1] / 2 + 20;
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -1599,7 +1599,7 @@ static bool cylinder_in_use(const struct dive *dive, int idx)
|
||||||
bool is_cylinder_use_appropriate(const struct divecomputer &dc, const cylinder_t &cyl, bool allowNonUsable)
|
bool is_cylinder_use_appropriate(const struct divecomputer &dc, const cylinder_t &cyl, bool allowNonUsable)
|
||||||
{
|
{
|
||||||
switch (cyl.cylinder_use) {
|
switch (cyl.cylinder_use) {
|
||||||
case OC:
|
case OC_GAS:
|
||||||
if (dc.divemode == FREEDIVE)
|
if (dc.divemode == FREEDIVE)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
|
|
@ -160,6 +160,6 @@ void exportHtmlInitLogic(const QString &filename, struct htmlExportSetting &hes)
|
||||||
file_copy_and_overwrite(searchPath + "jqplot.canvasAxisTickRenderer.min.js", exportFiles + "jqplot.canvasAxisTickRenderer.min.js");
|
file_copy_and_overwrite(searchPath + "jqplot.canvasAxisTickRenderer.min.js", exportFiles + "jqplot.canvasAxisTickRenderer.min.js");
|
||||||
file_copy_and_overwrite(searchPath + "jqplot.canvasTextRenderer.min.js", exportFiles + "jqplot.canvasTextRenderer.min.js");
|
file_copy_and_overwrite(searchPath + "jqplot.canvasTextRenderer.min.js", exportFiles + "jqplot.canvasTextRenderer.min.js");
|
||||||
file_copy_and_overwrite(searchPath + "jquery.min.js", exportFiles + "jquery.min.js");
|
file_copy_and_overwrite(searchPath + "jquery.min.js", exportFiles + "jquery.min.js");
|
||||||
file_copy_and_overwrite(searchPath + "jquery.jqplot.css", exportFiles + "jquery.jqplot.css");
|
file_copy_and_overwrite(searchPath + "jquery.jqplot.min.css", exportFiles + "jquery.jqplot.min.css");
|
||||||
file_copy_and_overwrite(searchPath + hes.themeFile, exportFiles + "theme.css");
|
file_copy_and_overwrite(searchPath + hes.themeFile, exportFiles + "theme.css");
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
#include "gettext.h"
|
#include "gettext.h"
|
||||||
#include "tag.h"
|
#include "tag.h"
|
||||||
#include "errorhelper.h"
|
#include "errorhelper.h"
|
||||||
|
#include "format.h"
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "divecomputer.h"
|
#include "divecomputer.h"
|
||||||
|
|
||||||
|
@ -45,7 +46,6 @@ static int seac_dive(void *param, int, char **data, char **)
|
||||||
{
|
{
|
||||||
int retval = 0, cylnum = 0;
|
int retval = 0, cylnum = 0;
|
||||||
int year, month, day, hour, min, sec, tz;
|
int year, month, day, hour, min, sec, tz;
|
||||||
char isodatetime[30];
|
|
||||||
time_t divetime;
|
time_t divetime;
|
||||||
struct gasmix lastgas, curgas;
|
struct gasmix lastgas, curgas;
|
||||||
struct parser_state *state = (struct parser_state *)param;
|
struct parser_state *state = (struct parser_state *)param;
|
||||||
|
@ -123,8 +123,8 @@ static int seac_dive(void *param, int, char **data, char **)
|
||||||
"-13:45", // 40
|
"-13:45", // 40
|
||||||
"-14:00"}; // 41
|
"-14:00"}; // 41
|
||||||
|
|
||||||
sprintf(isodatetime, "%4i-%02i-%02iT%02i:%02i:%02i%6s", year, month, day, hour, min, sec, timezoneoffset[tz]);
|
std::string isodatetime = format_string_std("%4i-%02i-%02iT%02i:%02i:%02i%6s", year, month, day, hour, min, sec, timezoneoffset[tz]);
|
||||||
divetime = get_dive_datetime_from_isostring(isodatetime);
|
divetime = get_dive_datetime_from_isostring(isodatetime.c_str());
|
||||||
state->cur_dive->when = divetime;
|
state->cur_dive->when = divetime;
|
||||||
|
|
||||||
// 6 = dive_type
|
// 6 = dive_type
|
||||||
|
|
|
@ -917,7 +917,7 @@ QString get_dive_date_string(timestamp_t when)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get local seconds since Epoch from ISO formatted UTC date time + offset string
|
// Get local seconds since Epoch from ISO formatted UTC date time + offset string
|
||||||
time_t get_dive_datetime_from_isostring(char *when) {
|
time_t get_dive_datetime_from_isostring(const char *when) {
|
||||||
QDateTime divetime = QDateTime::fromString(when, Qt::ISODate);
|
QDateTime divetime = QDateTime::fromString(when, Qt::ISODate);
|
||||||
return (time_t)(divetime.toSecsSinceEpoch());
|
return (time_t)(divetime.toSecsSinceEpoch());
|
||||||
}
|
}
|
||||||
|
|
|
@ -111,7 +111,7 @@ std::string local_file_path(const struct picture &picture);
|
||||||
std::string hashfile_name();
|
std::string hashfile_name();
|
||||||
enum deco_mode decoMode(bool in_planner);
|
enum deco_mode decoMode(bool in_planner);
|
||||||
void parse_seabear_header(const char *filename, struct xml_params *params);
|
void parse_seabear_header(const char *filename, struct xml_params *params);
|
||||||
time_t get_dive_datetime_from_isostring(char *when);
|
time_t get_dive_datetime_from_isostring(const char *when);
|
||||||
void print_qt_versions();
|
void print_qt_versions();
|
||||||
void lock_planner();
|
void lock_planner();
|
||||||
void unlock_planner();
|
void unlock_planner();
|
||||||
|
|
|
@ -399,6 +399,8 @@ Kirigami.Page {
|
||||||
delegate: Flickable {
|
delegate: Flickable {
|
||||||
id: internalScrollView
|
id: internalScrollView
|
||||||
width: diveDetailsListView.width
|
width: diveDetailsListView.width
|
||||||
|
height: diveDetailsListView.height
|
||||||
|
contentHeight: diveDetails.height
|
||||||
boundsBehavior: Flickable.StopAtBounds
|
boundsBehavior: Flickable.StopAtBounds
|
||||||
property var modelData: model
|
property var modelData: model
|
||||||
DiveDetailsView {
|
DiveDetailsView {
|
||||||
|
@ -423,6 +425,7 @@ Kirigami.Page {
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
leftMargin: Kirigami.Units.smallSpacing
|
leftMargin: Kirigami.Units.smallSpacing
|
||||||
rightMargin: Kirigami.Units.smallSpacing
|
rightMargin: Kirigami.Units.smallSpacing
|
||||||
|
contentHeight: detailsEdit.height
|
||||||
// start invisible and scaled down, to get the transition
|
// start invisible and scaled down, to get the transition
|
||||||
// off to the right start
|
// off to the right start
|
||||||
visible: false
|
visible: false
|
||||||
|
|
|
@ -34,7 +34,7 @@ if [[ -z "${CONTAINER_ID}" ]]; then
|
||||||
croak "Please make sure GIT_AUTHOR_NAME and GIT_AUTHOR_EMAIL are set for the first run of this script."
|
croak "Please make sure GIT_AUTHOR_NAME and GIT_AUTHOR_EMAIL are set for the first run of this script."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
docker create -v ${SUBSURFACE_ROOT}:${CONTAINER_SUBSURFACE_DIR} --name=${CONTAINER_NAME} subsurface/android-build:5.15.2 sleep infinity
|
docker create -v ${SUBSURFACE_ROOT}:${CONTAINER_SUBSURFACE_DIR} --name=${CONTAINER_NAME} subsurface/android-build:5.15.3 sleep infinity
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@ set -e
|
||||||
mkdir -p win32
|
mkdir -p win32
|
||||||
cd win32
|
cd win32
|
||||||
|
|
||||||
# build Subsurface and then smtk2ssrf
|
# build Subsurface
|
||||||
export MXEBUILDTYPE=x86_64-w64-mingw32.shared
|
export MXEBUILDTYPE=x86_64-w64-mingw32.shared
|
||||||
bash -ex ../subsurface/packaging/windows/mxe-based-build.sh installer
|
bash -ex ../subsurface/packaging/windows/mxe-based-build.sh installer
|
||||||
|
|
||||||
|
@ -23,6 +23,10 @@ mv subsurface/subsurface.exe* ${OUTPUT_DIR}/
|
||||||
fullname=$(cd subsurface ; ls subsurface-*.exe)
|
fullname=$(cd subsurface ; ls subsurface-*.exe)
|
||||||
mv subsurface/"$fullname" ${OUTPUT_DIR}/"${fullname%.exe}-installer.exe"
|
mv subsurface/"$fullname" ${OUTPUT_DIR}/"${fullname%.exe}-installer.exe"
|
||||||
|
|
||||||
|
# build Subsurface for smtk2ssrf
|
||||||
|
|
||||||
|
bash -ex ../subsurface/packaging/windows/mxe-based-build.sh -noftdi -nolibraw subsurface
|
||||||
|
|
||||||
bash -ex ../subsurface/packaging/windows/smtk2ssrf-mxe-build.sh -a -i
|
bash -ex ../subsurface/packaging/windows/smtk2ssrf-mxe-build.sh -a -i
|
||||||
|
|
||||||
# the strange two step move is in order to get predictable names to use
|
# the strange two step move is in order to get predictable names to use
|
||||||
|
|
|
@ -27,12 +27,16 @@
|
||||||
#
|
#
|
||||||
# now you can start the build
|
# now you can start the build
|
||||||
#
|
#
|
||||||
# make libxml2 libxslt libusb1 libzip libssh2 libftdi1 curl qt5 nsis
|
# make libxml2 libxslt libusb1 libzip libssh2 libftdi1 libraw curl qt5 nsis
|
||||||
#
|
#
|
||||||
# (if you intend to build Subsurface without user space FTDI support
|
# (if you intend to build Subsurface without user space FTDI support
|
||||||
# you can drop libftdi1 from that list and start this script with
|
# you can drop libftdi1 from that list and start this script with
|
||||||
# -noftdi )
|
# -noftdi )
|
||||||
#
|
#
|
||||||
|
# (if you intend to build Subsurface without libraw support
|
||||||
|
# you can drop libraw from that list and start this script with
|
||||||
|
# -nolibraw )
|
||||||
|
#
|
||||||
# After quite a while (depending on your machine anywhere from 15-20
|
# After quite a while (depending on your machine anywhere from 15-20
|
||||||
# minutes to several hours) you should have a working MXE install in
|
# minutes to several hours) you should have a working MXE install in
|
||||||
# ~/src/mxe
|
# ~/src/mxe
|
||||||
|
@ -93,6 +97,13 @@ else
|
||||||
FTDI="ON"
|
FTDI="ON"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [[ "$1" == "-nolibraw" ]] ; then
|
||||||
|
shift
|
||||||
|
LIBRAW="OFF"
|
||||||
|
else
|
||||||
|
LIBRAW="ON"
|
||||||
|
fi
|
||||||
|
|
||||||
# this is run on a rather powerful machine - if you want less
|
# this is run on a rather powerful machine - if you want less
|
||||||
# build parallelism, please change this variable
|
# build parallelism, please change this variable
|
||||||
JOBS="-j4"
|
JOBS="-j4"
|
||||||
|
@ -292,6 +303,7 @@ cd "$BUILDDIR"/subsurface
|
||||||
-DMAKE_TESTS=OFF \
|
-DMAKE_TESTS=OFF \
|
||||||
-DBTSUPPORT=ON -DBLESUPPORT=ON \
|
-DBTSUPPORT=ON -DBLESUPPORT=ON \
|
||||||
-DFTDISUPPORT=$FTDI \
|
-DFTDISUPPORT=$FTDI \
|
||||||
|
-DLIBRAW_SUPPORT=$LIBRAW \
|
||||||
-DLIBGIT2_FROM_PKGCONFIG=ON \
|
-DLIBGIT2_FROM_PKGCONFIG=ON \
|
||||||
"$BASEDIR"/subsurface
|
"$BASEDIR"/subsurface
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
#include "core/event.h"
|
#include "core/event.h"
|
||||||
|
|
||||||
class DiveCartesianAxis;
|
class DiveCartesianAxis;
|
||||||
class DivePixmaps;
|
struct DivePixmaps;
|
||||||
struct event;
|
struct event;
|
||||||
struct plot_info;
|
struct plot_info;
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@ class DiveGasPressureItem;
|
||||||
class DiveHeartrateItem;
|
class DiveHeartrateItem;
|
||||||
class DiveMeanDepthItem;
|
class DiveMeanDepthItem;
|
||||||
class DivePercentageItem;
|
class DivePercentageItem;
|
||||||
class DivePixmaps;
|
struct DivePixmaps;
|
||||||
class DivePlannerPointsModel;
|
class DivePlannerPointsModel;
|
||||||
class DiveProfileItem;
|
class DiveProfileItem;
|
||||||
class DiveReportedCeiling;
|
class DiveReportedCeiling;
|
||||||
|
|
|
@ -586,7 +586,7 @@ void ProfileWidget2::contextMenuEvent(QContextMenuEvent *event)
|
||||||
|
|
||||||
if (DiveEventItem *item = dynamic_cast<DiveEventItem *>(sceneItem)) {
|
if (DiveEventItem *item = dynamic_cast<DiveEventItem *>(sceneItem)) {
|
||||||
m.addAction(tr("Remove event"), [this,item] { removeEvent(item); });
|
m.addAction(tr("Remove event"), [this,item] { removeEvent(item); });
|
||||||
m.addAction(tr("Hide event"), [this, item] { hideEvent(item); });
|
m.addAction(tr("Hide event"), [this, item] { hideOneEvent(item); });
|
||||||
m.addAction(tr("Hide events of type '%1'").arg(event_type_name(item->ev)),
|
m.addAction(tr("Hide events of type '%1'").arg(event_type_name(item->ev)),
|
||||||
[this, item] { hideEventType(item); });
|
[this, item] { hideEventType(item); });
|
||||||
if (item->ev.type == SAMPLE_EVENT_BOOKMARK)
|
if (item->ev.type == SAMPLE_EVENT_BOOKMARK)
|
||||||
|
@ -678,7 +678,7 @@ void ProfileWidget2::renameCurrentDC()
|
||||||
Command::editDeviceNickname(currentdc, newName);
|
Command::editDeviceNickname(currentdc, newName);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ProfileWidget2::hideEvent(DiveEventItem *item)
|
void ProfileWidget2::hideOneEvent(DiveEventItem *item)
|
||||||
{
|
{
|
||||||
if (!d)
|
if (!d)
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -126,7 +126,7 @@ private:
|
||||||
void splitDive(int seconds);
|
void splitDive(int seconds);
|
||||||
void addSetpointChange(int seconds);
|
void addSetpointChange(int seconds);
|
||||||
void removeEvent(DiveEventItem *item);
|
void removeEvent(DiveEventItem *item);
|
||||||
void hideEvent(DiveEventItem *item);
|
void hideOneEvent(DiveEventItem *item);
|
||||||
void hideEventType(DiveEventItem *item);
|
void hideEventType(DiveEventItem *item);
|
||||||
void editName(DiveEventItem *item);
|
void editName(DiveEventItem *item);
|
||||||
void unhideEvents();
|
void unhideEvents();
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
#include "core/divelist.h"
|
#include "core/divelist.h"
|
||||||
#include "core/divelog.h"
|
#include "core/divelog.h"
|
||||||
#include "core/event.h"
|
#include "core/event.h"
|
||||||
|
#include "core/format.h"
|
||||||
#include "core/subsurface-string.h"
|
#include "core/subsurface-string.h"
|
||||||
#include "qt-models/cylindermodel.h"
|
#include "qt-models/cylindermodel.h"
|
||||||
#include "core/metrics.h" // For defaultModelFont().
|
#include "core/metrics.h" // For defaultModelFont().
|
||||||
|
@ -1271,13 +1272,12 @@ void DivePlannerPointsModel::computeVariations(std::unique_ptr<struct diveplan>
|
||||||
auto shorter = plan(&ds, plan_copy, dive.get(), dcNr, 1, cache, true, false);
|
auto shorter = plan(&ds, plan_copy, dive.get(), dcNr, 1, cache, true, false);
|
||||||
save.restore(&ds, false);
|
save.restore(&ds, false);
|
||||||
|
|
||||||
char buf[200];
|
std::string buf = format_string_std(", %s: %c %d:%02d /%s %c %d:%02d /min", qPrintable(tr("Stop times")),
|
||||||
sprintf(buf, ", %s: %c %d:%02d /%s %c %d:%02d /min", qPrintable(tr("Stop times")),
|
|
||||||
SIGNED_FRAC_TRIPLET(analyzeVariations(shallower, original, deeper, qPrintable(depth_units)), 60), qPrintable(depth_units),
|
SIGNED_FRAC_TRIPLET(analyzeVariations(shallower, original, deeper, qPrintable(depth_units)), 60), qPrintable(depth_units),
|
||||||
SIGNED_FRAC_TRIPLET(analyzeVariations(shorter, original, longer, qPrintable(time_units)), 60));
|
SIGNED_FRAC_TRIPLET(analyzeVariations(shorter, original, longer, qPrintable(time_units)), 60));
|
||||||
|
|
||||||
// By using a signal, we can transport the variations to the main thread.
|
// By using a signal, we can transport the variations to the main thread.
|
||||||
emit variationsComputed(QString(buf));
|
emit variationsComputed(QString::fromStdString(buf));
|
||||||
#ifdef DEBUG_STOPVAR
|
#ifdef DEBUG_STOPVAR
|
||||||
printf("\n\n");
|
printf("\n\n");
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -148,6 +148,7 @@ cmake -DBTSUPPORT=OFF \
|
||||||
-DNO_DOCS=ON \
|
-DNO_DOCS=ON \
|
||||||
-DNO_PRINTING=ON \
|
-DNO_PRINTING=ON \
|
||||||
-DNO_USERMANUAL=ON \
|
-DNO_USERMANUAL=ON \
|
||||||
|
-DLIBRAW_SUPPORT=OFF \
|
||||||
-DSUBSURFACE_TARGET_EXECUTABLE=DesktopExecutable \
|
-DSUBSURFACE_TARGET_EXECUTABLE=DesktopExecutable \
|
||||||
build
|
build
|
||||||
cd build || aborting "Couldn't cd into $SSRF_PATH/build directory"
|
cd build || aborting "Couldn't cd into $SSRF_PATH/build directory"
|
||||||
|
|
|
@ -34,8 +34,6 @@ pkg_config_library(GLIB2 glib-2.0 REQUIRED)
|
||||||
pkg_config_library(LIBGIT2 libgit2 REQUIRED)
|
pkg_config_library(LIBGIT2 libgit2 REQUIRED)
|
||||||
pkg_config_library(LIBMDB libmdb REQUIRED)
|
pkg_config_library(LIBMDB libmdb REQUIRED)
|
||||||
pkg_config_library(LIBDC libdivecomputer REQUIRED)
|
pkg_config_library(LIBDC libdivecomputer REQUIRED)
|
||||||
pkg_config_library(LIBFTDI libftdi1 QUIET)
|
|
||||||
pkg_config_library(LIBRAW libraw)
|
|
||||||
|
|
||||||
find_package(Qt5 REQUIRED COMPONENTS Core
|
find_package(Qt5 REQUIRED COMPONENTS Core
|
||||||
Concurrent
|
Concurrent
|
||||||
|
|
|
@ -27,7 +27,7 @@ function load_scripts()
|
||||||
fileref=document.createElement("link");
|
fileref=document.createElement("link");
|
||||||
fileref.setAttribute("rel", "stylesheet");
|
fileref.setAttribute("rel", "stylesheet");
|
||||||
fileref.setAttribute("type", "text/css");
|
fileref.setAttribute("type", "text/css");
|
||||||
fileref.setAttribute("href", location.pathname + "_files/jquery.jqplot.css");
|
fileref.setAttribute("href", location.pathname + "_files/jquery.jqplot.min.css");
|
||||||
document.getElementsByTagName("head")[0].appendChild(fileref);
|
document.getElementsByTagName("head")[0].appendChild(fileref);
|
||||||
|
|
||||||
fileref=document.createElement('script');
|
fileref=document.createElement('script');
|
||||||
|
|
BIN
theme/jqplot.canvasAxisTickRenderer.js
Normal file
BIN
theme/jqplot.canvasAxisTickRenderer.js
Normal file
Binary file not shown.
57
theme/jqplot.canvasAxisTickRenderer.min.js
vendored
57
theme/jqplot.canvasAxisTickRenderer.min.js
vendored
|
@ -1,57 +0,0 @@
|
||||||
/**
|
|
||||||
* jqPlot
|
|
||||||
* Pure JavaScript plotting plugin using jQuery
|
|
||||||
*
|
|
||||||
* Version: 1.0.0r1095
|
|
||||||
*
|
|
||||||
* Copyright (c) 2009-2011 Chris Leonello
|
|
||||||
* jqPlot is currently available for use in all personal or commercial projects
|
|
||||||
* under both the MIT (http://www.opensource.org/licenses/mit-license.php) and GPL
|
|
||||||
* version 2.0 (http://www.gnu.org/licenses/gpl-2.0.html) licenses. This means that you can
|
|
||||||
* choose the license that best suits your project and use it accordingly.
|
|
||||||
*
|
|
||||||
* Although not required, the author would appreciate an email letting him
|
|
||||||
* know of any substantial use of jqPlot. You can reach the author at:
|
|
||||||
* chris at jqplot dot com or see http://www.jqplot.com/info.php .
|
|
||||||
*
|
|
||||||
* If you are feeling kind and generous, consider supporting the project by
|
|
||||||
* making a donation at: http://www.jqplot.com/donate.php .
|
|
||||||
*
|
|
||||||
* sprintf functions contained in jqplot.sprintf.js by Ash Searle:
|
|
||||||
*
|
|
||||||
* version 2007.04.27
|
|
||||||
* author Ash Searle
|
|
||||||
* http://hexmen.com/blog/2007/03/printf-sprintf/
|
|
||||||
* http://hexmen.com/js/sprintf.js
|
|
||||||
* The author (Ash Searle) has placed this code in the public domain:
|
|
||||||
* "This code is unrestricted: you are free to use it however you like."
|
|
||||||
*
|
|
||||||
* included jsDate library by Chris Leonello:
|
|
||||||
*
|
|
||||||
* Copyright (c) 2010-2011 Chris Leonello
|
|
||||||
*
|
|
||||||
* jsDate is currently available for use in all personal or commercial projects
|
|
||||||
* under both the MIT and GPL version 2.0 licenses. This means that you can
|
|
||||||
* choose the license that best suits your project and use it accordingly.
|
|
||||||
*
|
|
||||||
* jsDate borrows many concepts and ideas from the Date Instance
|
|
||||||
* Methods by Ken Snyder along with some parts of Ken's actual code.
|
|
||||||
*
|
|
||||||
* Ken's origianl Date Instance Methods and copyright notice:
|
|
||||||
*
|
|
||||||
* Ken Snyder (ken d snyder at gmail dot com)
|
|
||||||
* 2008-09-10
|
|
||||||
* version 2.0.2 (http://kendsnyder.com/sandbox/date/)
|
|
||||||
* Creative Commons Attribution License 3.0 (http://creativecommons.org/licenses/by/3.0/)
|
|
||||||
*
|
|
||||||
* jqplotToImage function based on Larry Siden's export-jqplot-to-png.js.
|
|
||||||
* Larry has generously given permission to adapt his code for inclusion
|
|
||||||
* into jqPlot.
|
|
||||||
*
|
|
||||||
* Larry's original code can be found here:
|
|
||||||
*
|
|
||||||
* https://github.com/lsiden/export-jqplot-to-png
|
|
||||||
*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
(function(a){a.jqplot.CanvasAxisTickRenderer=function(b){this.mark="outside";this.showMark=true;this.showGridline=true;this.isMinorTick=false;this.angle=0;this.markSize=4;this.show=true;this.showLabel=true;this.labelPosition="auto";this.label="";this.value=null;this._styles={};this.formatter=a.jqplot.DefaultTickFormatter;this.formatString="";this.prefix="";this.fontFamily='"Trebuchet MS", Arial, Helvetica, sans-serif';this.fontSize="10pt";this.fontWeight="normal";this.fontStretch=1;this.textColor="#666666";this.enableFontSupport=true;this.pt2px=null;this._elem;this._ctx;this._plotWidth;this._plotHeight;this._plotDimensions={height:null,width:null};a.extend(true,this,b);var c={fontSize:this.fontSize,fontWeight:this.fontWeight,fontStretch:this.fontStretch,fillStyle:this.textColor,angle:this.getAngleRad(),fontFamily:this.fontFamily};if(this.pt2px){c.pt2px=this.pt2px}if(this.enableFontSupport){if(a.jqplot.support_canvas_text()){this._textRenderer=new a.jqplot.CanvasFontRenderer(c)}else{this._textRenderer=new a.jqplot.CanvasTextRenderer(c)}}else{this._textRenderer=new a.jqplot.CanvasTextRenderer(c)}};a.jqplot.CanvasAxisTickRenderer.prototype.init=function(b){a.extend(true,this,b);this._textRenderer.init({fontSize:this.fontSize,fontWeight:this.fontWeight,fontStretch:this.fontStretch,fillStyle:this.textColor,angle:this.getAngleRad(),fontFamily:this.fontFamily})};a.jqplot.CanvasAxisTickRenderer.prototype.getWidth=function(d){if(this._elem){return this._elem.outerWidth(true)}else{var f=this._textRenderer;var c=f.getWidth(d);var e=f.getHeight(d);var b=Math.abs(Math.sin(f.angle)*e)+Math.abs(Math.cos(f.angle)*c);return b}};a.jqplot.CanvasAxisTickRenderer.prototype.getHeight=function(d){if(this._elem){return this._elem.outerHeight(true)}else{var f=this._textRenderer;var c=f.getWidth(d);var e=f.getHeight(d);var b=Math.abs(Math.cos(f.angle)*e)+Math.abs(Math.sin(f.angle)*c);return b}};a.jqplot.CanvasAxisTickRenderer.prototype.getAngleRad=function(){var b=this.angle*Math.PI/180;return b};a.jqplot.CanvasAxisTickRenderer.prototype.setTick=function(b,d,c){this.value=b;if(c){this.isMinorTick=true}return this};a.jqplot.CanvasAxisTickRenderer.prototype.draw=function(c,f){if(!this.label){this.label=this.prefix+this.formatter(this.formatString,this.value)}if(this._elem){if(a.jqplot.use_excanvas&&window.G_vmlCanvasManager.uninitElement!==undefined){window.G_vmlCanvasManager.uninitElement(this._elem.get(0))}this._elem.emptyForce();this._elem=null}var e=f.canvasManager.getCanvas();this._textRenderer.setText(this.label,c);var b=this.getWidth(c);var d=this.getHeight(c);e.width=b;e.height=d;e.style.width=b;e.style.height=d;e.style.textAlign="left";e.style.position="absolute";e=f.canvasManager.initCanvas(e);this._elem=a(e);this._elem.css(this._styles);this._elem.addClass("jqplot-"+this.axis+"-tick");e=null;return this._elem};a.jqplot.CanvasAxisTickRenderer.prototype.pack=function(){this._textRenderer.draw(this._elem.get(0).getContext("2d"),this.label)}})(jQuery);
|
|
BIN
theme/jqplot.canvasTextRenderer.js
Normal file
BIN
theme/jqplot.canvasTextRenderer.js
Normal file
Binary file not shown.
57
theme/jqplot.canvasTextRenderer.min.js
vendored
57
theme/jqplot.canvasTextRenderer.min.js
vendored
File diff suppressed because one or more lines are too long
BIN
theme/jqplot.highlighter.js
Normal file
BIN
theme/jqplot.highlighter.js
Normal file
Binary file not shown.
57
theme/jqplot.highlighter.min.js
vendored
57
theme/jqplot.highlighter.min.js
vendored
File diff suppressed because one or more lines are too long
|
@ -1,259 +0,0 @@
|
||||||
/*rules for the plot target div. These will be cascaded down to all plot elements according to css rules*/
|
|
||||||
.jqplot-target {
|
|
||||||
position: relative;
|
|
||||||
color: #666666;
|
|
||||||
font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
|
|
||||||
font-size: 1em;
|
|
||||||
/* height: 300px;
|
|
||||||
width: 400px;*/
|
|
||||||
}
|
|
||||||
|
|
||||||
/*rules applied to all axes*/
|
|
||||||
.jqplot-axis {
|
|
||||||
font-size: 0.75em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.jqplot-xaxis {
|
|
||||||
margin-top: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.jqplot-x2axis {
|
|
||||||
margin-bottom: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.jqplot-yaxis {
|
|
||||||
margin-right: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.jqplot-y2axis, .jqplot-y3axis, .jqplot-y4axis, .jqplot-y5axis, .jqplot-y6axis, .jqplot-y7axis, .jqplot-y8axis, .jqplot-y9axis, .jqplot-yMidAxis {
|
|
||||||
margin-left: 10px;
|
|
||||||
margin-right: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*rules applied to all axis tick divs*/
|
|
||||||
.jqplot-axis-tick, .jqplot-xaxis-tick, .jqplot-yaxis-tick, .jqplot-x2axis-tick, .jqplot-y2axis-tick, .jqplot-y3axis-tick, .jqplot-y4axis-tick, .jqplot-y5axis-tick, .jqplot-y6axis-tick, .jqplot-y7axis-tick, .jqplot-y8axis-tick, .jqplot-y9axis-tick, .jqplot-yMidAxis-tick {
|
|
||||||
position: absolute;
|
|
||||||
white-space: pre;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.jqplot-xaxis-tick {
|
|
||||||
top: 0px;
|
|
||||||
/* initial position untill tick is drawn in proper place */
|
|
||||||
left: 15px;
|
|
||||||
/* padding-top: 10px;*/
|
|
||||||
vertical-align: top;
|
|
||||||
}
|
|
||||||
|
|
||||||
.jqplot-x2axis-tick {
|
|
||||||
bottom: 0px;
|
|
||||||
/* initial position untill tick is drawn in proper place */
|
|
||||||
left: 15px;
|
|
||||||
/* padding-bottom: 10px;*/
|
|
||||||
vertical-align: bottom;
|
|
||||||
}
|
|
||||||
|
|
||||||
.jqplot-yaxis-tick {
|
|
||||||
right: 0px;
|
|
||||||
/* initial position untill tick is drawn in proper place */
|
|
||||||
top: 15px;
|
|
||||||
/* padding-right: 10px;*/
|
|
||||||
text-align: right;
|
|
||||||
}
|
|
||||||
|
|
||||||
.jqplot-yaxis-tick.jqplot-breakTick {
|
|
||||||
right: -20px;
|
|
||||||
margin-right: 0px;
|
|
||||||
padding:1px 5px 1px 5px;
|
|
||||||
/* background-color: white;*/
|
|
||||||
z-index: 2;
|
|
||||||
font-size: 1.5em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.jqplot-y2axis-tick, .jqplot-y3axis-tick, .jqplot-y4axis-tick, .jqplot-y5axis-tick, .jqplot-y6axis-tick, .jqplot-y7axis-tick, .jqplot-y8axis-tick, .jqplot-y9axis-tick {
|
|
||||||
left: 0px;
|
|
||||||
/* initial position untill tick is drawn in proper place */
|
|
||||||
top: 15px;
|
|
||||||
/* padding-left: 10px;*/
|
|
||||||
/* padding-right: 15px;*/
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
.jqplot-yMidAxis-tick {
|
|
||||||
text-align: center;
|
|
||||||
white-space: nowrap;
|
|
||||||
}
|
|
||||||
|
|
||||||
.jqplot-xaxis-label {
|
|
||||||
margin-top: 10px;
|
|
||||||
font-size: 11pt;
|
|
||||||
position: absolute;
|
|
||||||
}
|
|
||||||
|
|
||||||
.jqplot-x2axis-label {
|
|
||||||
margin-bottom: 10px;
|
|
||||||
font-size: 11pt;
|
|
||||||
position: absolute;
|
|
||||||
}
|
|
||||||
|
|
||||||
.jqplot-yaxis-label {
|
|
||||||
margin-right: 10px;
|
|
||||||
/* text-align: center;*/
|
|
||||||
font-size: 11pt;
|
|
||||||
position: absolute;
|
|
||||||
}
|
|
||||||
|
|
||||||
.jqplot-yMidAxis-label {
|
|
||||||
font-size: 11pt;
|
|
||||||
position: absolute;
|
|
||||||
}
|
|
||||||
|
|
||||||
.jqplot-y2axis-label, .jqplot-y3axis-label, .jqplot-y4axis-label, .jqplot-y5axis-label, .jqplot-y6axis-label, .jqplot-y7axis-label, .jqplot-y8axis-label, .jqplot-y9axis-label {
|
|
||||||
/* text-align: center;*/
|
|
||||||
font-size: 11pt;
|
|
||||||
margin-left: 10px;
|
|
||||||
position: absolute;
|
|
||||||
}
|
|
||||||
|
|
||||||
.jqplot-meterGauge-tick {
|
|
||||||
font-size: 0.75em;
|
|
||||||
color: #999999;
|
|
||||||
}
|
|
||||||
|
|
||||||
.jqplot-meterGauge-label {
|
|
||||||
font-size: 1em;
|
|
||||||
color: #999999;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.jqplot-table-legend {
|
|
||||||
margin-top: 12px;
|
|
||||||
margin-bottom: 12px;
|
|
||||||
margin-left: 12px;
|
|
||||||
margin-right: 12px;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.jqplot-table-legend, table.jqplot-cursor-legend {
|
|
||||||
background-color: rgba(255,255,255,0.6);
|
|
||||||
border: 1px solid #cccccc;
|
|
||||||
position: absolute;
|
|
||||||
font-size: 0.75em;
|
|
||||||
}
|
|
||||||
|
|
||||||
td.jqplot-table-legend {
|
|
||||||
vertical-align:middle;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
These rules could be used instead of assigning
|
|
||||||
element styles and relying on js object properties.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
td.jqplot-table-legend-swatch {
|
|
||||||
padding-top: 0.5em;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
tr.jqplot-table-legend:first td.jqplot-table-legend-swatch {
|
|
||||||
padding-top: 0px;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
td.jqplot-seriesToggle:hover, td.jqplot-seriesToggle:active {
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
.jqplot-table-legend .jqplot-series-hidden {
|
|
||||||
text-decoration: line-through;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.jqplot-table-legend-swatch-outline {
|
|
||||||
border: 1px solid #cccccc;
|
|
||||||
padding:1px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.jqplot-table-legend-swatch {
|
|
||||||
width:0px;
|
|
||||||
height:0px;
|
|
||||||
border-top-width: 5px;
|
|
||||||
border-bottom-width: 5px;
|
|
||||||
border-left-width: 6px;
|
|
||||||
border-right-width: 6px;
|
|
||||||
border-top-style: solid;
|
|
||||||
border-bottom-style: solid;
|
|
||||||
border-left-style: solid;
|
|
||||||
border-right-style: solid;
|
|
||||||
}
|
|
||||||
|
|
||||||
.jqplot-title {
|
|
||||||
top: 0px;
|
|
||||||
left: 0px;
|
|
||||||
padding-bottom: 0.5em;
|
|
||||||
font-size: 1.2em;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.jqplot-cursor-tooltip {
|
|
||||||
border: 1px solid #cccccc;
|
|
||||||
font-size: 0.75em;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.jqplot-cursor-tooltip {
|
|
||||||
border: 1px solid #cccccc;
|
|
||||||
font-size: 0.75em;
|
|
||||||
white-space: nowrap;
|
|
||||||
background: rgba(208,208,208,0.5);
|
|
||||||
padding: 1px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.jqplot-highlighter-tooltip, .jqplot-canvasOverlay-tooltip {
|
|
||||||
border: 1px solid #cccccc;
|
|
||||||
font-size: 0.75em;
|
|
||||||
white-space: nowrap;
|
|
||||||
background: rgba(208,208,208,0.9);
|
|
||||||
padding: 1px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.jqplot-point-label {
|
|
||||||
font-size: 0.75em;
|
|
||||||
z-index: 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
td.jqplot-cursor-legend-swatch {
|
|
||||||
vertical-align: middle;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.jqplot-cursor-legend-swatch {
|
|
||||||
width: 1.2em;
|
|
||||||
height: 0.7em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.jqplot-error {
|
|
||||||
/* Styles added to the plot target container when there is an error go here.*/
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.jqplot-error-message {
|
|
||||||
/* Styling of the custom error message div goes here.*/
|
|
||||||
position: relative;
|
|
||||||
top: 46%;
|
|
||||||
display: inline-block;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.jqplot-bubble-label {
|
|
||||||
font-size: 0.8em;
|
|
||||||
/* background: rgba(90%, 90%, 90%, 0.15);*/
|
|
||||||
padding-left: 2px;
|
|
||||||
padding-right: 2px;
|
|
||||||
color: rgb(20%, 20%, 20%);
|
|
||||||
}
|
|
||||||
|
|
||||||
div.jqplot-bubble-label.jqplot-bubble-label-highlight {
|
|
||||||
background: rgba(90%, 90%, 90%, 0.7);
|
|
||||||
}
|
|
||||||
|
|
||||||
div.jqplot-noData-container {
|
|
||||||
text-align: center;
|
|
||||||
background-color: rgba(96%, 96%, 96%, 0.3);
|
|
||||||
}
|
|
1
theme/jquery.jqplot.min.css
vendored
Normal file
1
theme/jquery.jqplot.min.css
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
.jqplot-xaxis,.jqplot-xaxis-label{margin-top:10px}.jqplot-x2axis,.jqplot-x2axis-label{margin-bottom:10px}.jqplot-target{position:relative;color:#666;font-family:"Trebuchet MS",Arial,Helvetica,sans-serif;font-size:1em}.jqplot-axis{font-size:.75em}.jqplot-yaxis{margin-right:10px}.jqplot-y2axis,.jqplot-y3axis,.jqplot-y4axis,.jqplot-y5axis,.jqplot-y6axis,.jqplot-y7axis,.jqplot-y8axis,.jqplot-y9axis,.jqplot-yMidAxis{margin-left:10px;margin-right:10px}.jqplot-axis-tick,.jqplot-x2axis-tick,.jqplot-xaxis-tick,.jqplot-y2axis-tick,.jqplot-y3axis-tick,.jqplot-y4axis-tick,.jqplot-y5axis-tick,.jqplot-y6axis-tick,.jqplot-y7axis-tick,.jqplot-y8axis-tick,.jqplot-y9axis-tick,.jqplot-yMidAxis-tick,.jqplot-yaxis-tick{position:absolute;white-space:pre}.jqplot-xaxis-tick{top:0;left:15px;vertical-align:top}.jqplot-x2axis-tick{bottom:0;left:15px;vertical-align:bottom}.jqplot-yaxis-tick{right:0;top:15px;text-align:right}.jqplot-yaxis-tick.jqplot-breakTick{right:-20px;margin-right:0;padding:1px 5px;z-index:2;font-size:1.5em}.jqplot-x2axis-label,.jqplot-xaxis-label,.jqplot-yMidAxis-label,.jqplot-yaxis-label{font-size:11pt;position:absolute}.jqplot-y2axis-tick,.jqplot-y3axis-tick,.jqplot-y4axis-tick,.jqplot-y5axis-tick,.jqplot-y6axis-tick,.jqplot-y7axis-tick,.jqplot-y8axis-tick,.jqplot-y9axis-tick{left:0;top:15px;text-align:left}.jqplot-yMidAxis-tick{text-align:center;white-space:nowrap}.jqplot-yaxis-label{margin-right:10px}.jqplot-y2axis-label,.jqplot-y3axis-label,.jqplot-y4axis-label,.jqplot-y5axis-label,.jqplot-y6axis-label,.jqplot-y7axis-label,.jqplot-y8axis-label,.jqplot-y9axis-label{font-size:11pt;margin-left:10px;position:absolute}.jqplot-meterGauge-tick{font-size:.75em;color:#999}.jqplot-meterGauge-label{font-size:1em;color:#999}table.jqplot-table-legend{margin:12px}table.jqplot-cursor-legend,table.jqplot-table-legend{background-color:rgba(255,255,255,.6);border:1px solid #ccc;position:absolute;font-size:.75em}td.jqplot-table-legend{vertical-align:middle}td.jqplot-seriesToggle:active,td.jqplot-seriesToggle:hover{cursor:pointer}.jqplot-table-legend .jqplot-series-hidden{text-decoration:line-through}div.jqplot-table-legend-swatch-outline{border:1px solid #ccc;padding:1px}div.jqplot-table-legend-swatch{width:0;height:0;border-width:5px 6px;border-style:solid}.jqplot-title{top:0;left:0;padding-bottom:.5em;font-size:1.2em}table.jqplot-cursor-tooltip{border:1px solid #ccc;font-size:.75em}.jqplot-canvasOverlay-tooltip,.jqplot-cursor-tooltip,.jqplot-highlighter-tooltip{border:1px solid #ccc;font-size:.75em;white-space:nowrap;background:rgba(208,208,208,.5);padding:1px}.jqplot-point-label{font-size:.75em;z-index:2}td.jqplot-cursor-legend-swatch{vertical-align:middle;text-align:center}div.jqplot-cursor-legend-swatch{width:1.2em;height:.7em}.jqplot-error{text-align:center}.jqplot-error-message{position:relative;top:46%;display:inline-block}div.jqplot-bubble-label{font-size:.8em;padding-left:2px;padding-right:2px;color:rgb(20%,20%,20%)}div.jqplot-bubble-label.jqplot-bubble-label-highlight{background:rgba(90%,90%,90%,.7)}div.jqplot-noData-container{text-align:center;background-color:rgba(96%,96%,96%,.3)}
|
BIN
theme/jquery.jqplot.min.js
vendored
BIN
theme/jquery.jqplot.min.js
vendored
Binary file not shown.
BIN
theme/jquery.min.js
vendored
BIN
theme/jquery.min.js
vendored
Binary file not shown.
Loading…
Reference in a new issue