Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
008f8ad21e | ||
|
|
4b539ef044 | ||
|
|
47acf2b3dd | ||
|
|
0318c6c2de | ||
|
|
34489fe7db | ||
|
|
210ed3896d | ||
|
|
2790b837d4 | ||
|
|
7633ef16aa | ||
|
|
4fd8814212 | ||
|
|
79b2860ea1 | ||
|
|
92d7280105 | ||
|
|
cb25bc341a |
@ -49,7 +49,7 @@ option(NO_PRINTING "disable the printing support" OFF)
|
|||||||
option(NO_USERMANUAL "don't include a viewer for the user manual" OFF)
|
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 (requires Qt5.4 or newer)" 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)
|
||||||
|
|
||||||
# Options regarding What should we build on subsurface
|
# Options regarding What should we build on subsurface
|
||||||
@ -505,9 +505,8 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
|
|||||||
install(CODE "execute_process(COMMAND mkdir -p ${PLUGINDIR}/geoservices)")
|
install(CODE "execute_process(COMMAND mkdir -p ${PLUGINDIR}/geoservices)")
|
||||||
install(CODE "execute_process(COMMAND cp ${_qt5Core_install_prefix}/plugins/geoservices/libqtgeoservices_googlemaps.dylib ${PLUGINDIR}/geoservices ERROR_QUIET)")
|
install(CODE "execute_process(COMMAND cp ${_qt5Core_install_prefix}/plugins/geoservices/libqtgeoservices_googlemaps.dylib ${PLUGINDIR}/geoservices ERROR_QUIET)")
|
||||||
install(CODE "execute_process(COMMAND cp ${CMAKE_SOURCE_DIR}/../install-root/${_qt5Core_install_prefix}/plugins/geoservices/libqtgeoservices_googlemaps.dylib ${PLUGINDIR}/geoservices ERROR_QUIET)")
|
install(CODE "execute_process(COMMAND cp ${CMAKE_SOURCE_DIR}/../install-root/${_qt5Core_install_prefix}/plugins/geoservices/libqtgeoservices_googlemaps.dylib ${PLUGINDIR}/geoservices ERROR_QUIET)")
|
||||||
# this is a hack - but I don't know how else to find the macdeployqt program if it's not in the PATH
|
# this will fail is macdeployqt isn't in the PATH - that seemed to happen in the past, but not recently
|
||||||
string(REPLACE moc macdeployqt MACDEPLOYQT ${QT_MOC_EXECUTABLE})
|
install(CODE "execute_process(COMMAND macdeployqt ${APP_BUNDLE_DIR} -no-strip ${MACDEPLOY_ARGS})")
|
||||||
install(CODE "execute_process(COMMAND ${MACDEPLOYQT} ${APP_BUNDLE_DIR} -no-strip ${MACDEPLOY_ARGS})")
|
|
||||||
# the next hack is here to delete the sqlite plugin that get's installed even though it isn't needed
|
# the next hack is here to delete the sqlite plugin that get's installed even though it isn't needed
|
||||||
install(CODE "execute_process(COMMAND rm -rf ${CMAKE_BINARY_DIR}/${APP_BUNDLE_DIR}/Contents/PlugIns/sqldrivers)")
|
install(CODE "execute_process(COMMAND rm -rf ${CMAKE_BINARY_DIR}/${APP_BUNDLE_DIR}/Contents/PlugIns/sqldrivers)")
|
||||||
# and another hack to get the QML Components in the right place
|
# and another hack to get the QML Components in the right place
|
||||||
|
|||||||
@ -34,5 +34,9 @@
|
|||||||
<string>${MACOSX_BUNDLE_COPYRIGHT}</string>
|
<string>${MACOSX_BUNDLE_COPYRIGHT}</string>
|
||||||
<key>NSHighResolutionCapable</key>
|
<key>NSHighResolutionCapable</key>
|
||||||
<true/>
|
<true/>
|
||||||
|
<key>NSSupportsAutomaticGraphicsSwitching</key>
|
||||||
|
<true/>
|
||||||
|
<key>NSBluetoothAlwaysUsageDescription</key>
|
||||||
|
<string>Subsurface needs access to your Bluetooth peripherals in order to download dive information directly from BLE enabled dive computers.</string>
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
||||||
|
|||||||
98
core/color.h
98
core/color.h
@ -7,65 +7,67 @@
|
|||||||
|
|
||||||
#include <QColor>
|
#include <QColor>
|
||||||
|
|
||||||
|
#define MAKEQCOLOR(r,g,b,a) QColor::fromRgbF((float)(r), (float)(b), (float)(g), (float)(a))
|
||||||
|
|
||||||
// Greens
|
// Greens
|
||||||
#define CAMARONE1 QColor::fromRgbF(0.0, 0.4, 0.0, 1)
|
#define CAMARONE1 MAKEQCOLOR(0.0, 0.4, 0.0, 1)
|
||||||
#define FUNGREEN1 QColor::fromRgbF(0.0, 0.4, 0.2, 1)
|
#define FUNGREEN1 MAKEQCOLOR(0.0, 0.4, 0.2, 1)
|
||||||
#define FUNGREEN1_HIGH_TRANS QColor::fromRgbF(0.0, 0.4, 0.2, 0.25)
|
#define FUNGREEN1_HIGH_TRANS MAKEQCOLOR(0.0, 0.4, 0.2, 0.25)
|
||||||
#define KILLARNEY1 QColor::fromRgbF(0.2, 0.4, 0.2, 1)
|
#define KILLARNEY1 MAKEQCOLOR(0.2, 0.4, 0.2, 1)
|
||||||
#define APPLE1 QColor::fromRgbF(0.2, 0.6, 0.2, 1)
|
#define APPLE1 MAKEQCOLOR(0.2, 0.6, 0.2, 1)
|
||||||
#define APPLE1_MED_TRANS QColor::fromRgbF(0.2, 0.6, 0.2, 0.5)
|
#define APPLE1_MED_TRANS MAKEQCOLOR(0.2, 0.6, 0.2, 0.5)
|
||||||
#define APPLE1_HIGH_TRANS QColor::fromRgbF(0.2, 0.6, 0.2, 0.25)
|
#define APPLE1_HIGH_TRANS MAKEQCOLOR(0.2, 0.6, 0.2, 0.25)
|
||||||
#define LIMENADE1 QColor::fromRgbF(0.4, 0.8, 0.0, 1)
|
#define LIMENADE1 MAKEQCOLOR(0.4, 0.8, 0.0, 1)
|
||||||
#define ATLANTIS1 QColor::fromRgbF(0.4, 0.8, 0.2, 1)
|
#define ATLANTIS1 MAKEQCOLOR(0.4, 0.8, 0.2, 1)
|
||||||
#define ATLANTIS2 QColor::fromRgbF(0.6, 0.8, 0.2, 1)
|
#define ATLANTIS2 MAKEQCOLOR(0.6, 0.8, 0.2, 1)
|
||||||
#define RIOGRANDE1 QColor::fromRgbF(0.8, 0.8, 0.0, 1)
|
#define RIOGRANDE1 MAKEQCOLOR(0.8, 0.8, 0.0, 1)
|
||||||
#define EARLSGREEN1 QColor::fromRgbF(0.8, 0.8, 0.2, 1)
|
#define EARLSGREEN1 MAKEQCOLOR(0.8, 0.8, 0.2, 1)
|
||||||
#define FORESTGREEN1 QColor::fromRgbF(0.1, 0.5, 0.1, 1)
|
#define FORESTGREEN1 MAKEQCOLOR(0.1, 0.5, 0.1, 1)
|
||||||
#define NITROX_GREEN QColor::fromRgbF(0, 0.54, 0.375, 1)
|
#define NITROX_GREEN MAKEQCOLOR(0, 0.54, 0.375, 1)
|
||||||
|
|
||||||
// Reds
|
// Reds
|
||||||
#define PERSIANRED1 QColor::fromRgbF(0.8, 0.2, 0.2, 1)
|
#define PERSIANRED1 MAKEQCOLOR(0.8, 0.2, 0.2, 1)
|
||||||
#define TUSCANY1 QColor::fromRgbF(0.8, 0.4, 0.2, 1)
|
#define TUSCANY1 MAKEQCOLOR(0.8, 0.4, 0.2, 1)
|
||||||
#define PIRATEGOLD1 QColor::fromRgbF(0.8, 0.5, 0.0, 1)
|
#define PIRATEGOLD1 MAKEQCOLOR(0.8, 0.5, 0.0, 1)
|
||||||
#define PIRATEGOLD1_MED_TRANS QColor::fromRgbF(0.8, 0.5, 0.0, 0.75)
|
#define PIRATEGOLD1_MED_TRANS MAKEQCOLOR(0.8, 0.5, 0.0, 0.75)
|
||||||
#define HOKEYPOKEY1 QColor::fromRgbF(0.8, 0.6, 0.2, 1)
|
#define HOKEYPOKEY1 MAKEQCOLOR(0.8, 0.6, 0.2, 1)
|
||||||
#define CINNABAR1 QColor::fromRgbF(0.9, 0.3, 0.2, 1)
|
#define CINNABAR1 MAKEQCOLOR(0.9, 0.3, 0.2, 1)
|
||||||
#define REDORANGE1 QColor::fromRgbF(1.0, 0.2, 0.2, 1)
|
#define REDORANGE1 MAKEQCOLOR(1.0, 0.2, 0.2, 1)
|
||||||
#define REDORANGE1_HIGH_TRANS QColor::fromRgbF(1.0, 0.2, 0.2, 0.25)
|
#define REDORANGE1_HIGH_TRANS MAKEQCOLOR(1.0, 0.2, 0.2, 0.25)
|
||||||
#define REDORANGE1_MED_TRANS QColor::fromRgbF(1.0, 0.2, 0.2, 0.5)
|
#define REDORANGE1_MED_TRANS MAKEQCOLOR(1.0, 0.2, 0.2, 0.5)
|
||||||
#define RED1_MED_TRANS QColor::fromRgbF(1.0, 0.0, 0.0, 0.5)
|
#define RED1_MED_TRANS MAKEQCOLOR(1.0, 0.0, 0.0, 0.5)
|
||||||
#define RED1 QColor::fromRgbF(1.0, 0.0, 0.0, 1)
|
#define RED1 MAKEQCOLOR(1.0, 0.0, 0.0, 1)
|
||||||
|
|
||||||
// Monochromes
|
// Monochromes
|
||||||
#define BLACK1 QColor::fromRgbF(0.0, 0.0, 0.0, 1)
|
#define BLACK1 MAKEQCOLOR(0.0, 0.0, 0.0, 1)
|
||||||
#define BLACK1_LOW_TRANS QColor::fromRgbF(0.0, 0.0, 0.0, 0.75)
|
#define BLACK1_LOW_TRANS MAKEQCOLOR(0.0, 0.0, 0.0, 0.75)
|
||||||
#define BLACK1_HIGH_TRANS QColor::fromRgbF(0.0, 0.0, 0.0, 0.25)
|
#define BLACK1_HIGH_TRANS MAKEQCOLOR(0.0, 0.0, 0.0, 0.25)
|
||||||
#define TUNDORA1_MED_TRANS QColor::fromRgbF(0.3, 0.3, 0.3, 0.5)
|
#define TUNDORA1_MED_TRANS MAKEQCOLOR(0.3, 0.3, 0.3, 0.5)
|
||||||
#define MED_GRAY_HIGH_TRANS QColor::fromRgbF(0.5, 0.5, 0.5, 0.25)
|
#define MED_GRAY_HIGH_TRANS MAKEQCOLOR(0.5, 0.5, 0.5, 0.25)
|
||||||
#define MERCURY1_MED_TRANS QColor::fromRgbF(0.9, 0.9, 0.9, 0.5)
|
#define MERCURY1_MED_TRANS MAKEQCOLOR(0.9, 0.9, 0.9, 0.5)
|
||||||
#define CONCRETE1_LOWER_TRANS QColor::fromRgbF(0.95, 0.95, 0.95, 0.9)
|
#define CONCRETE1_LOWER_TRANS MAKEQCOLOR(0.95, 0.95, 0.95, 0.9)
|
||||||
#define WHITE1_MED_TRANS QColor::fromRgbF(1.0, 1.0, 1.0, 0.5)
|
#define WHITE1_MED_TRANS MAKEQCOLOR(1.0, 1.0, 1.0, 0.5)
|
||||||
#define WHITE1 QColor::fromRgbF(1.0, 1.0, 1.0, 1)
|
#define WHITE1 MAKEQCOLOR(1.0, 1.0, 1.0, 1)
|
||||||
|
|
||||||
// Blues
|
// Blues
|
||||||
#define GOVERNORBAY2 QColor::fromRgbF(0.2, 0.2, 0.7, 1)
|
#define GOVERNORBAY2 MAKEQCOLOR(0.2, 0.2, 0.7, 1)
|
||||||
#define GOVERNORBAY1_MED_TRANS QColor::fromRgbF(0.2, 0.2, 0.8, 0.5)
|
#define GOVERNORBAY1_MED_TRANS MAKEQCOLOR(0.2, 0.2, 0.8, 0.5)
|
||||||
#define ROYALBLUE2 QColor::fromRgbF(0.2, 0.2, 0.9, 1)
|
#define ROYALBLUE2 MAKEQCOLOR(0.2, 0.2, 0.9, 1)
|
||||||
#define ROYALBLUE2_LOW_TRANS QColor::fromRgbF(0.2, 0.2, 0.9, 0.75)
|
#define ROYALBLUE2_LOW_TRANS MAKEQCOLOR(0.2, 0.2, 0.9, 0.75)
|
||||||
#define AIR_BLUE QColor::fromRgbF(0.25, 0.75, 1.0, 1)
|
#define AIR_BLUE MAKEQCOLOR(0.25, 0.75, 1.0, 1)
|
||||||
#define AIR_BLUE_TRANS QColor::fromRgbF(0.25, 0.75, 1.0, 0.5)
|
#define AIR_BLUE_TRANS MAKEQCOLOR(0.25, 0.75, 1.0, 0.5)
|
||||||
|
|
||||||
// Yellows / BROWNS
|
// Yellows / BROWNS
|
||||||
#define SPRINGWOOD1 QColor::fromRgbF(0.95, 0.95, 0.9, 1)
|
#define SPRINGWOOD1 MAKEQCOLOR(0.95, 0.95, 0.9, 1)
|
||||||
#define SPRINGWOOD1_MED_TRANS QColor::fromRgbF(0.95, 0.95, 0.9, 0.5)
|
#define SPRINGWOOD1_MED_TRANS MAKEQCOLOR(0.95, 0.95, 0.9, 0.5)
|
||||||
#define BROOM1_LOWER_TRANS QColor::fromRgbF(1.0, 1.0, 0.1, 0.9)
|
#define BROOM1_LOWER_TRANS MAKEQCOLOR(1.0, 1.0, 0.1, 0.9)
|
||||||
#define PEANUT QColor::fromRgbF(0.5, 0.2, 0.1, 1.0)
|
#define PEANUT MAKEQCOLOR(0.5, 0.2, 0.1, 1.0)
|
||||||
#define PEANUT_MED_TRANS QColor::fromRgbF(0.5, 0.2, 0.1, 0.5)
|
#define PEANUT_MED_TRANS MAKEQCOLOR(0.5, 0.2, 0.1, 0.5)
|
||||||
#define NITROX_YELLOW QColor::fromRgbF(0.98, 0.89, 0.07, 1.0)
|
#define NITROX_YELLOW MAKEQCOLOR(0.98, 0.89, 0.07, 1.0)
|
||||||
|
|
||||||
// Magentas
|
// Magentas
|
||||||
#define MEDIUMREDVIOLET1_HIGHER_TRANS QColor::fromRgbF(0.7, 0.2, 0.7, 0.1)
|
#define MEDIUMREDVIOLET1_HIGHER_TRANS MAKEQCOLOR(0.7, 0.2, 0.7, 0.1)
|
||||||
#define MAGENTA QColor::fromRgbF(1.0, 0.0, 1.0, 1.0)
|
#define MAGENTA MAKEQCOLOR(1.0, 0.0, 1.0, 1.0)
|
||||||
|
|
||||||
#define SAC_COLORS_START_IDX SAC_1
|
#define SAC_COLORS_START_IDX SAC_1
|
||||||
#define SAC_COLORS 9
|
#define SAC_COLORS 9
|
||||||
|
|||||||
@ -19,9 +19,9 @@ SubsurfaceAbout::SubsurfaceAbout(QWidget *parent) : QDialog(parent, QFlag(0))
|
|||||||
"Linus Torvalds, Dirk Hohndel, Tomaz Canabrava, Berthold Stoeger, and others, 2011-2022"
|
"Linus Torvalds, Dirk Hohndel, Tomaz Canabrava, Berthold Stoeger, and others, 2011-2022"
|
||||||
"</span>").arg(versionString));
|
"</span>").arg(versionString));
|
||||||
|
|
||||||
QShortcut *close = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_W), this);
|
QShortcut *close = new QShortcut(QKeySequence(Qt::CTRL | Qt::Key_W), this);
|
||||||
connect(close, SIGNAL(activated()), this, SLOT(close()));
|
connect(close, SIGNAL(activated()), this, SLOT(close()));
|
||||||
QShortcut *quit = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_Q), this);
|
QShortcut *quit = new QShortcut(QKeySequence(Qt::CTRL | Qt::Key_Q), this);
|
||||||
connect(quit, SIGNAL(activated()), parent, SLOT(close()));
|
connect(quit, SIGNAL(activated()), parent, SLOT(close()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -18,7 +18,7 @@ BtDeviceSelectionDialog::BtDeviceSelectionDialog(QWidget *parent) :
|
|||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
|
|
||||||
// Quit button callbacks
|
// Quit button callbacks
|
||||||
QShortcut *quit = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_Q), this);
|
QShortcut *quit = new QShortcut(QKeySequence(Qt::CTRL | Qt::Key_Q), this);
|
||||||
connect(quit, SIGNAL(activated()), this, SLOT(reject()));
|
connect(quit, SIGNAL(activated()), this, SLOT(reject()));
|
||||||
connect(ui->quit, SIGNAL(clicked()), this, SLOT(reject()));
|
connect(ui->quit, SIGNAL(clicked()), this, SLOT(reject()));
|
||||||
|
|
||||||
|
|||||||
@ -37,9 +37,9 @@ DiveLogExportDialog::DiveLogExportDialog(QWidget *parent) : QDialog(parent),
|
|||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
showExplanation();
|
showExplanation();
|
||||||
QShortcut *quit = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_Q), this);
|
QShortcut *quit = new QShortcut(QKeySequence(Qt::CTRL | Qt::Key_Q), this);
|
||||||
connect(quit, SIGNAL(activated()), MainWindow::instance(), SLOT(close()));
|
connect(quit, SIGNAL(activated()), MainWindow::instance(), SLOT(close()));
|
||||||
QShortcut *close = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_W), this);
|
QShortcut *close = new QShortcut(QKeySequence(Qt::CTRL | Qt::Key_W), this);
|
||||||
connect(close, SIGNAL(activated()), this, SLOT(close()));
|
connect(close, SIGNAL(activated()), this, SLOT(close()));
|
||||||
|
|
||||||
/* the names are not the actual values exported to the json files,The font-family property should hold several
|
/* the names are not the actual values exported to the json files,The font-family property should hold several
|
||||||
@ -246,7 +246,7 @@ void DiveLogExportDialog::on_buttonBox_accepted()
|
|||||||
qPrefDisplay::set_lastDir(fileInfo.dir().path());
|
qPrefDisplay::set_lastDir(fileInfo.dir().path());
|
||||||
// the non XSLT exports are called directly above, the XSLT based ons are called here
|
// the non XSLT exports are called directly above, the XSLT based ons are called here
|
||||||
if (!stylesheet.isEmpty()) {
|
if (!stylesheet.isEmpty()) {
|
||||||
QFuture<void> future = exportUsingStyleSheet(filename, ui->exportSelected->isChecked(),
|
QFuture<int> future = exportUsingStyleSheet(filename, ui->exportSelected->isChecked(),
|
||||||
ui->CSVUnits_2->currentIndex(), stylesheet.toUtf8(), ui->anonymize->isChecked());
|
ui->CSVUnits_2->currentIndex(), stylesheet.toUtf8(), ui->anonymize->isChecked());
|
||||||
MainWindow::instance()->getNotificationWidget()->showNotification(tr("Please wait, exporting..."), KMessageWidget::Information);
|
MainWindow::instance()->getNotificationWidget()->showNotification(tr("Please wait, exporting..."), KMessageWidget::Information);
|
||||||
MainWindow::instance()->getNotificationWidget()->setFuture(future);
|
MainWindow::instance()->getNotificationWidget()->setFuture(future);
|
||||||
|
|||||||
@ -380,9 +380,9 @@ DiveLogImportDialog::DiveLogImportDialog(QStringList fn, QWidget *parent) : QDia
|
|||||||
loadFileContents(-1, INITIAL);
|
loadFileContents(-1, INITIAL);
|
||||||
|
|
||||||
/* manually import CSV file */
|
/* manually import CSV file */
|
||||||
QShortcut *close = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_W), this);
|
QShortcut *close = new QShortcut(QKeySequence(Qt::CTRL | Qt::Key_W), this);
|
||||||
connect(close, SIGNAL(activated()), this, SLOT(close()));
|
connect(close, SIGNAL(activated()), this, SLOT(close()));
|
||||||
QShortcut *quit = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_Q), this);
|
QShortcut *quit = new QShortcut(QKeySequence(Qt::CTRL | Qt::Key_Q), this);
|
||||||
connect(quit, SIGNAL(activated()), parent, SLOT(close()));
|
connect(quit, SIGNAL(activated()), parent, SLOT(close()));
|
||||||
|
|
||||||
connect(ui->CSVSeparator, SIGNAL(currentIndexChanged(int)), this, SLOT(loadFileContentsSeperatorSelected(int)));
|
connect(ui->CSVSeparator, SIGNAL(currentIndexChanged(int)), this, SLOT(loadFileContentsSeperatorSelected(int)));
|
||||||
|
|||||||
@ -16,8 +16,8 @@
|
|||||||
DivesiteImportDialog::DivesiteImportDialog(struct dive_site_table &imported, QString source, QWidget *parent) : QDialog(parent),
|
DivesiteImportDialog::DivesiteImportDialog(struct dive_site_table &imported, QString source, QWidget *parent) : QDialog(parent),
|
||||||
importedSource(source)
|
importedSource(source)
|
||||||
{
|
{
|
||||||
QShortcut *close = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_W), this);
|
QShortcut *close = new QShortcut(QKeySequence(Qt::CTRL | Qt::Key_W), this);
|
||||||
QShortcut *quit = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_Q), this);
|
QShortcut *quit = new QShortcut(QKeySequence(Qt::CTRL | Qt::Key_Q), this);
|
||||||
|
|
||||||
divesiteImportedModel = new DivesiteImportedModel(this);
|
divesiteImportedModel = new DivesiteImportedModel(this);
|
||||||
|
|
||||||
|
|||||||
@ -31,8 +31,8 @@ DownloadFromDCWidget::DownloadFromDCWidget(QWidget *parent) : QDialog(parent, QF
|
|||||||
{
|
{
|
||||||
diveImportedModel = new DiveImportedModel(this);
|
diveImportedModel = new DiveImportedModel(this);
|
||||||
vendorModel.setStringList(vendorList);
|
vendorModel.setStringList(vendorList);
|
||||||
QShortcut *close = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_W), this);
|
QShortcut *close = new QShortcut(QKeySequence(Qt::CTRL | Qt::Key_W), this);
|
||||||
QShortcut *quit = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_Q), this);
|
QShortcut *quit = new QShortcut(QKeySequence(Qt::CTRL | Qt::Key_Q), this);
|
||||||
|
|
||||||
int startingWidth = defaultModelFont().pointSize();
|
int startingWidth = defaultModelFont().pointSize();
|
||||||
|
|
||||||
|
|||||||
@ -250,9 +250,9 @@ KMessageWidget::MessageType KMessageWidget::messageType() const
|
|||||||
|
|
||||||
static QColor darkShade(QColor c)
|
static QColor darkShade(QColor c)
|
||||||
{
|
{
|
||||||
qreal contrast = 0.7; // taken from kcolorscheme for the dark shade
|
double contrast = 0.7; // taken from kcolorscheme for the dark shade
|
||||||
|
|
||||||
qreal darkAmount;
|
double darkAmount;
|
||||||
if (c.lightnessF() < 0.006) { /* too dark */
|
if (c.lightnessF() < 0.006) { /* too dark */
|
||||||
darkAmount = 0.02 + 0.40 * contrast;
|
darkAmount = 0.02 + 0.40 * contrast;
|
||||||
} else if (c.lightnessF() > 0.93) { /* too bright */
|
} else if (c.lightnessF() > 0.93) { /* too bright */
|
||||||
@ -261,9 +261,9 @@ static QColor darkShade(QColor c)
|
|||||||
darkAmount = (-c.lightnessF()) * (0.55 + contrast * 0.35);
|
darkAmount = (-c.lightnessF()) * (0.55 + contrast * 0.35);
|
||||||
}
|
}
|
||||||
|
|
||||||
qreal v = c.lightnessF() + darkAmount;
|
double v = c.lightnessF() + darkAmount;
|
||||||
v = v > 0.0 ? (v < 1.0 ? v : 1.0) : 0.0;
|
v = v > 0.0 ? (v < 1.0 ? v : 1.0) : 0.0;
|
||||||
c.setHsvF(c.hslHueF(), c.hslSaturationF(), v);
|
c.setHsvF(c.hslHueF(), c.hslSaturationF(), (float)v);
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -210,8 +210,8 @@ MainWindow::MainWindow() : QMainWindow(),
|
|||||||
updateManager = new UpdateManager(this);
|
updateManager = new UpdateManager(this);
|
||||||
undoAction = Command::undoAction(this);
|
undoAction = Command::undoAction(this);
|
||||||
redoAction = Command::redoAction(this);
|
redoAction = Command::redoAction(this);
|
||||||
undoAction->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Z));
|
undoAction->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_Z));
|
||||||
redoAction->setShortcut(QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_Z));
|
redoAction->setShortcut(QKeySequence(Qt::CTRL | Qt::SHIFT | Qt::Key_Z));
|
||||||
ui.menu_Edit->addActions({ undoAction, redoAction });
|
ui.menu_Edit->addActions({ undoAction, redoAction });
|
||||||
|
|
||||||
#ifndef NO_PRINTING
|
#ifndef NO_PRINTING
|
||||||
@ -570,8 +570,8 @@ void MainWindow::enableShortcuts()
|
|||||||
redoAction->setEnabled(true);
|
redoAction->setEnabled(true);
|
||||||
ui.actionPreviousDC->setShortcut(Qt::Key_Left);
|
ui.actionPreviousDC->setShortcut(Qt::Key_Left);
|
||||||
ui.actionNextDC->setShortcut(Qt::Key_Right);
|
ui.actionNextDC->setShortcut(Qt::Key_Right);
|
||||||
ui.copy->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_C));
|
ui.copy->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_C));
|
||||||
ui.paste->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_V));
|
ui.paste->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_V));
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::showProfile()
|
void MainWindow::showProfile()
|
||||||
@ -724,9 +724,9 @@ void MainWindow::on_actionYearlyStatistics_triggered()
|
|||||||
l->addWidget(view);
|
l->addWidget(view);
|
||||||
d.resize(lrint(width() * .8), height() / 2);
|
d.resize(lrint(width() * .8), height() / 2);
|
||||||
d.move(lrint(width() * .1), height() / 4);
|
d.move(lrint(width() * .1), height() / 4);
|
||||||
QShortcut *close = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_W), &d);
|
QShortcut *close = new QShortcut(QKeySequence(Qt::CTRL | Qt::Key_W), &d);
|
||||||
connect(close, SIGNAL(activated()), &d, SLOT(close()));
|
connect(close, SIGNAL(activated()), &d, SLOT(close()));
|
||||||
QShortcut *quit = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_Q), &d);
|
QShortcut *quit = new QShortcut(QKeySequence(Qt::CTRL | Qt::Key_Q), &d);
|
||||||
connect(quit, SIGNAL(activated()), this, SLOT(close()));
|
connect(quit, SIGNAL(activated()), this, SLOT(close()));
|
||||||
d.setWindowFlags(Qt::Window | Qt::CustomizeWindowHint
|
d.setWindowFlags(Qt::Window | Qt::CustomizeWindowHint
|
||||||
| Qt::WindowCloseButtonHint | Qt::WindowTitleHint | Qt::WindowMaximizeButtonHint);
|
| Qt::WindowCloseButtonHint | Qt::WindowTitleHint | Qt::WindowMaximizeButtonHint);
|
||||||
|
|||||||
@ -31,7 +31,7 @@ QString NotificationWidget::getNotificationText()
|
|||||||
return text();
|
return text();
|
||||||
}
|
}
|
||||||
|
|
||||||
void NotificationWidget::setFuture(const QFuture<void> &future)
|
void NotificationWidget::setFuture(const QFuture<int> &future)
|
||||||
{
|
{
|
||||||
future_watcher.setFuture(future);
|
future_watcher.setFuture(future);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -16,7 +16,7 @@ class NotificationWidget : public KMessageWidget {
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
explicit NotificationWidget(QWidget *parent = 0);
|
explicit NotificationWidget(QWidget *parent = 0);
|
||||||
void setFuture(const QFuture<void> &future);
|
void setFuture(const QFuture<int> &future);
|
||||||
void showNotification(QString message, KMessageWidget::MessageType type);
|
void showNotification(QString message, KMessageWidget::MessageType type);
|
||||||
void hideNotification();
|
void hideNotification();
|
||||||
QString getNotificationText();
|
QString getNotificationText();
|
||||||
@ -25,7 +25,7 @@ public
|
|||||||
slots:
|
slots:
|
||||||
void showError(QString message);
|
void showError(QString message);
|
||||||
private:
|
private:
|
||||||
QFutureWatcher<void> future_watcher;
|
QFutureWatcher<int> future_watcher;
|
||||||
|
|
||||||
private
|
private
|
||||||
slots:
|
slots:
|
||||||
|
|||||||
@ -272,7 +272,7 @@ QColor QtWaitingSpinner::currentLineColor(int countDistance, int totalNrOfLines,
|
|||||||
int distanceThreshold =
|
int distanceThreshold =
|
||||||
static_cast<int>(ceil((totalNrOfLines - 1) * trailFadePerc / 100.0));
|
static_cast<int>(ceil((totalNrOfLines - 1) * trailFadePerc / 100.0));
|
||||||
if (countDistance > distanceThreshold) {
|
if (countDistance > distanceThreshold) {
|
||||||
color.setAlphaF(minAlphaF);
|
color.setAlphaF((float)minAlphaF);
|
||||||
} else {
|
} else {
|
||||||
qreal alphaDiff = color.alphaF() - minAlphaF;
|
qreal alphaDiff = color.alphaF() - minAlphaF;
|
||||||
qreal gradient = alphaDiff / static_cast<qreal>(distanceThreshold + 1);
|
qreal gradient = alphaDiff / static_cast<qreal>(distanceThreshold + 1);
|
||||||
@ -280,7 +280,7 @@ QColor QtWaitingSpinner::currentLineColor(int countDistance, int totalNrOfLines,
|
|||||||
|
|
||||||
// If alpha is out of bounds, clip it.
|
// If alpha is out of bounds, clip it.
|
||||||
resultAlpha = std::min(1.0, std::max(0.0, resultAlpha));
|
resultAlpha = std::min(1.0, std::max(0.0, resultAlpha));
|
||||||
color.setAlphaF(resultAlpha);
|
color.setAlphaF((float)resultAlpha);
|
||||||
}
|
}
|
||||||
return color;
|
return color;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -198,17 +198,5 @@
|
|||||||
</hint>
|
</hint>
|
||||||
</hints>
|
</hints>
|
||||||
</connection>
|
</connection>
|
||||||
<connection>
|
|
||||||
<sender>timeEdit</sender>
|
|
||||||
<signal>timeChanged(const QTime)</signal>
|
|
||||||
<receiver>ShiftTimesDialog</receiver>
|
|
||||||
<slot>changeTime()</slot>
|
|
||||||
</connection>
|
|
||||||
<connection>
|
|
||||||
<sender>backwards</sender>
|
|
||||||
<signal>toggled(bool)</signal>
|
|
||||||
<receiver>ShiftTimesDialog</receiver>
|
|
||||||
<slot>changeTime()</slot>
|
|
||||||
</connection>
|
|
||||||
</connections>
|
</connections>
|
||||||
</ui>
|
</ui>
|
||||||
|
|||||||
@ -45,9 +45,9 @@ RenumberDialog::RenumberDialog(bool selectedOnlyIn, QWidget *parent) : QDialog(p
|
|||||||
{
|
{
|
||||||
ui.setupUi(this);
|
ui.setupUi(this);
|
||||||
connect(ui.buttonBox, SIGNAL(clicked(QAbstractButton *)), this, SLOT(buttonClicked(QAbstractButton *)));
|
connect(ui.buttonBox, SIGNAL(clicked(QAbstractButton *)), this, SLOT(buttonClicked(QAbstractButton *)));
|
||||||
QShortcut *close = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_W), this);
|
QShortcut *close = new QShortcut(QKeySequence(Qt::CTRL | Qt::Key_W), this);
|
||||||
connect(close, SIGNAL(activated()), this, SLOT(close()));
|
connect(close, SIGNAL(activated()), this, SLOT(close()));
|
||||||
QShortcut *quit = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_Q), this);
|
QShortcut *quit = new QShortcut(QKeySequence(Qt::CTRL | Qt::Key_Q), this);
|
||||||
connect(quit, SIGNAL(activated()), parent, SLOT(close()));
|
connect(quit, SIGNAL(activated()), parent, SLOT(close()));
|
||||||
|
|
||||||
if (selectedOnly && amount_selected == 1)
|
if (selectedOnly && amount_selected == 1)
|
||||||
@ -72,9 +72,9 @@ SetpointDialog::SetpointDialog(struct dive *dIn, int dcNrIn, int seconds) : QDia
|
|||||||
{
|
{
|
||||||
ui.setupUi(this);
|
ui.setupUi(this);
|
||||||
connect(ui.buttonBox, &QDialogButtonBox::clicked, this, &SetpointDialog::buttonClicked);
|
connect(ui.buttonBox, &QDialogButtonBox::clicked, this, &SetpointDialog::buttonClicked);
|
||||||
QShortcut *close = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_W), this);
|
QShortcut *close = new QShortcut(QKeySequence(Qt::CTRL | Qt::Key_W), this);
|
||||||
connect(close, &QShortcut::activated, this, &QDialog::close);
|
connect(close, &QShortcut::activated, this, &QDialog::close);
|
||||||
QShortcut *quit = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_Q), this);
|
QShortcut *quit = new QShortcut(QKeySequence(Qt::CTRL | Qt::Key_Q), this);
|
||||||
connect(quit, &QShortcut::activated, MainWindow::instance(), &QWidget::close);
|
connect(quit, &QShortcut::activated, MainWindow::instance(), &QWidget::close);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -116,9 +116,9 @@ ShiftTimesDialog::ShiftTimesDialog(QWidget *parent) : QDialog(parent),
|
|||||||
connect(ui.buttonBox, SIGNAL(clicked(QAbstractButton *)), this, SLOT(buttonClicked(QAbstractButton *)));
|
connect(ui.buttonBox, SIGNAL(clicked(QAbstractButton *)), this, SLOT(buttonClicked(QAbstractButton *)));
|
||||||
connect(ui.timeEdit, SIGNAL(timeChanged(const QTime)), this, SLOT(changeTime()));
|
connect(ui.timeEdit, SIGNAL(timeChanged(const QTime)), this, SLOT(changeTime()));
|
||||||
connect(ui.backwards, SIGNAL(toggled(bool)), this, SLOT(changeTime()));
|
connect(ui.backwards, SIGNAL(toggled(bool)), this, SLOT(changeTime()));
|
||||||
QShortcut *close = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_W), this);
|
QShortcut *close = new QShortcut(QKeySequence(Qt::CTRL | Qt::Key_W), this);
|
||||||
connect(close, SIGNAL(activated()), this, SLOT(close()));
|
connect(close, SIGNAL(activated()), this, SLOT(close()));
|
||||||
QShortcut *quit = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_Q), this);
|
QShortcut *quit = new QShortcut(QKeySequence(Qt::CTRL | Qt::Key_Q), this);
|
||||||
connect(quit, SIGNAL(activated()), parent, SLOT(close()));
|
connect(quit, SIGNAL(activated()), parent, SLOT(close()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -271,9 +271,9 @@ void ShiftImageTimesDialog::backwardsChanged(bool)
|
|||||||
URLDialog::URLDialog(QWidget *parent) : QDialog(parent)
|
URLDialog::URLDialog(QWidget *parent) : QDialog(parent)
|
||||||
{
|
{
|
||||||
ui.setupUi(this);
|
ui.setupUi(this);
|
||||||
QShortcut *close = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_W), this);
|
QShortcut *close = new QShortcut(QKeySequence(Qt::CTRL | Qt::Key_W), this);
|
||||||
connect(close, SIGNAL(activated()), this, SLOT(close()));
|
connect(close, SIGNAL(activated()), this, SLOT(close()));
|
||||||
QShortcut *quit = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_Q), this);
|
QShortcut *quit = new QShortcut(QKeySequence(Qt::CTRL | Qt::Key_Q), this);
|
||||||
connect(quit, SIGNAL(activated()), parent, SLOT(close()));
|
connect(quit, SIGNAL(activated()), parent, SLOT(close()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -317,9 +317,9 @@ DiveComponentSelection::DiveComponentSelection(QWidget *parent, struct dive *tar
|
|||||||
UI_FROM_COMPONENT(number);
|
UI_FROM_COMPONENT(number);
|
||||||
UI_FROM_COMPONENT(when);
|
UI_FROM_COMPONENT(when);
|
||||||
connect(ui.buttonBox, SIGNAL(clicked(QAbstractButton *)), this, SLOT(buttonClicked(QAbstractButton *)));
|
connect(ui.buttonBox, SIGNAL(clicked(QAbstractButton *)), this, SLOT(buttonClicked(QAbstractButton *)));
|
||||||
QShortcut *close = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_W), this);
|
QShortcut *close = new QShortcut(QKeySequence(Qt::CTRL | Qt::Key_W), this);
|
||||||
connect(close, SIGNAL(activated()), this, SLOT(close()));
|
connect(close, SIGNAL(activated()), this, SLOT(close()));
|
||||||
QShortcut *quit = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_Q), this);
|
QShortcut *quit = new QShortcut(QKeySequence(Qt::CTRL | Qt::Key_Q), this);
|
||||||
connect(quit, SIGNAL(activated()), parent, SLOT(close()));
|
connect(quit, SIGNAL(activated()), parent, SLOT(close()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -259,9 +259,9 @@ DivelogsDeWebServices::DivelogsDeWebServices(QWidget *parent) : WebServices(pare
|
|||||||
ui.password->setText(qPrefCloudStorage::divelogde_pass());
|
ui.password->setText(qPrefCloudStorage::divelogde_pass());
|
||||||
ui.saveUidLocal->hide();
|
ui.saveUidLocal->hide();
|
||||||
hideUpload();
|
hideUpload();
|
||||||
QShortcut *close = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_W), this);
|
QShortcut *close = new QShortcut(QKeySequence(Qt::CTRL | Qt::Key_W), this);
|
||||||
connect(close, SIGNAL(activated()), this, SLOT(close()));
|
connect(close, SIGNAL(activated()), this, SLOT(close()));
|
||||||
QShortcut *quit = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_Q), this);
|
QShortcut *quit = new QShortcut(QKeySequence(Qt::CTRL | Qt::Key_Q), this);
|
||||||
connect(quit, SIGNAL(activated()), parent, SLOT(close()));
|
connect(quit, SIGNAL(activated()), parent, SLOT(close()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -10,9 +10,9 @@ TripSelectionDialog::TripSelectionDialog(QWidget *parent) : QDialog(parent)
|
|||||||
ui.setupUi(this);
|
ui.setupUi(this);
|
||||||
connect(ui.trips, &QListWidget::itemSelectionChanged, this, &TripSelectionDialog::selectionChanged);
|
connect(ui.trips, &QListWidget::itemSelectionChanged, this, &TripSelectionDialog::selectionChanged);
|
||||||
|
|
||||||
QShortcut *close = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_W), this);
|
QShortcut *close = new QShortcut(QKeySequence(Qt::CTRL | Qt::Key_W), this);
|
||||||
connect(close, &QShortcut::activated, this, &QDialog::close);
|
connect(close, &QShortcut::activated, this, &QDialog::close);
|
||||||
QShortcut *quit = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_Q), this);
|
QShortcut *quit = new QShortcut(QKeySequence(Qt::CTRL | Qt::Key_Q), this);
|
||||||
connect(quit, &QShortcut::activated, parent, &QWidget::close);
|
connect(quit, &QShortcut::activated, parent, &QWidget::close);
|
||||||
|
|
||||||
// We could use a model, but it seems barely worth the hassle.
|
// We could use a model, but it seems barely worth the hassle.
|
||||||
|
|||||||
@ -11,4 +11,4 @@ ANDROID_PLATFORMS=android-29
|
|||||||
ANDROID_NDK=ndk/${NDK_VERSION}
|
ANDROID_NDK=ndk/${NDK_VERSION}
|
||||||
# OpenSSL also has an entry in get-dep-lib.sh line 103
|
# OpenSSL also has an entry in get-dep-lib.sh line 103
|
||||||
# that needs to be updated as well.
|
# that needs to be updated as well.
|
||||||
OPENSSL_VERSION=1.1.1h
|
OPENSSL_VERSION=1.1.1m
|
||||||
|
|||||||
@ -1,23 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>NSPrincipalClass</key>
|
|
||||||
<string>NSApplication</string>
|
|
||||||
<key>CFBundleIconFile</key>
|
|
||||||
<string>Subsurface.icns</string>
|
|
||||||
<key>CFBundleName</key>
|
|
||||||
<string>Subsurface</string>
|
|
||||||
<key>CFBundlePackageType</key>
|
|
||||||
<string>APPL</string>
|
|
||||||
<key>CFBundleExecutable</key>
|
|
||||||
<string>subsurface</string>
|
|
||||||
<key>CFBundleIdentifier</key>
|
|
||||||
<string>org.hohndel.subsurface</string>
|
|
||||||
<key>CFBundleInfoDictionaryVersion</key>
|
|
||||||
<string>6.0</string>
|
|
||||||
<key>CFBundleVersion</key>
|
|
||||||
<string>@SHORT_VERSION@</string>
|
|
||||||
<key>NSSupportsAutomaticGraphicsSwitching</key><true/>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
||||||
@ -6,8 +6,8 @@
|
|||||||
|
|
||||||
#include <array>
|
#include <array>
|
||||||
|
|
||||||
DivePercentageItem::DivePercentageItem(const DiveCartesianAxis &hAxis, const DiveCartesianAxis &vAxis, double dpr) :
|
DivePercentageItem::DivePercentageItem(const DiveCartesianAxis &hAxis, const DiveCartesianAxis &vAxis) :
|
||||||
hAxis(hAxis), vAxis(vAxis), dpr(dpr)
|
hAxis(hAxis), vAxis(vAxis)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -52,29 +52,30 @@ static std::array<int, num_tissues> calcLinesPerTissue(int size)
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define SETHSVF(h, s, v) setHsvF((float)(h), (float)(s), (float)(v))
|
||||||
static QRgb colorScale(double value, int inert)
|
static QRgb colorScale(double value, int inert)
|
||||||
{
|
{
|
||||||
QColor color;
|
QColor color;
|
||||||
double scaledValue = value / (AMB_PERCENTAGE * inert) * 1000.0;
|
double scaledValue = value / (AMB_PERCENTAGE * inert) * 1000.0;
|
||||||
if (scaledValue < 0.8) // grade from cyan to blue to purple
|
if (scaledValue < 0.8) // grade from cyan to blue to purple
|
||||||
color.setHsvF(0.5 + 0.25 * scaledValue / 0.8, 1.0, 1.0);
|
color.SETHSVF(0.5 + 0.25 * scaledValue / 0.8, 1.0, 1.0);
|
||||||
else if (scaledValue < 1.0) // grade from magenta to black
|
else if (scaledValue < 1.0) // grade from magenta to black
|
||||||
color.setHsvF(0.75, 1.0, (1.0 - scaledValue) / 0.2);
|
color.SETHSVF(0.75, 1.0, (1.0 - scaledValue) / 0.2);
|
||||||
else if (value < AMB_PERCENTAGE) // grade from black to bright green
|
else if (value < AMB_PERCENTAGE) // grade from black to bright green
|
||||||
color.setHsvF(0.333, 1.0, (value - AMB_PERCENTAGE * inert / 1000.0) / (AMB_PERCENTAGE - AMB_PERCENTAGE * inert / 1000.0));
|
color.SETHSVF(0.333, 1.0, (value - AMB_PERCENTAGE * inert / 1000.0) / (AMB_PERCENTAGE - AMB_PERCENTAGE * inert / 1000.0));
|
||||||
else if (value < 65) // grade from bright green (0% M) to yellow-green (30% M)
|
else if (value < 65) // grade from bright green (0% M) to yellow-green (30% M)
|
||||||
color.setHsvF(0.333 - 0.133 * (value - AMB_PERCENTAGE) / (65.0 - AMB_PERCENTAGE), 1.0, 1.0);
|
color.SETHSVF(0.333 - 0.133 * (value - AMB_PERCENTAGE) / (65.0 - AMB_PERCENTAGE), 1.0, 1.0);
|
||||||
else if (value < 85) // grade from yellow-green (30% M) to orange (70% M)
|
else if (value < 85) // grade from yellow-green (30% M) to orange (70% M)
|
||||||
color.setHsvF(0.2 - 0.1 * (value - 65.0) / 20.0, 1.0, 1.0);
|
color.SETHSVF(0.2 - 0.1 * (value - 65.0) / 20.0, 1.0, 1.0);
|
||||||
else if (value < 100) // grade from orange (70% M) to red (100% M)
|
else if (value < 100) // grade from orange (70% M) to red (100% M)
|
||||||
color.setHsvF(0.1 * (100.0 - value) / 15.0, 1.0, 1.0);
|
color.SETHSVF(0.1 * (100.0 - value) / 15.0, 1.0, 1.0);
|
||||||
else if (value < 120) // M value exceeded - grade from red to white
|
else if (value < 120) // M value exceeded - grade from red to white
|
||||||
color.setHsvF(0.0, 1 - (value - 100.0) / 20.0, 1.0);
|
color.SETHSVF(0.0, 1 - (value - 100.0) / 20.0, 1.0);
|
||||||
else // white
|
else // white
|
||||||
color.setHsvF(0.0, 0.0, 1.0);
|
color.SETHSVF(0.0, 0.0, 1.0);
|
||||||
return color.rgba();
|
return color.rgba();
|
||||||
}
|
}
|
||||||
|
#undef SETHSVF
|
||||||
void DivePercentageItem::replot(const dive *d, const struct divecomputer *dc, const plot_info &pi)
|
void DivePercentageItem::replot(const dive *d, const struct divecomputer *dc, const plot_info &pi)
|
||||||
{
|
{
|
||||||
auto [minX, maxX] = hAxis.screenMinMax();
|
auto [minX, maxX] = hAxis.screenMinMax();
|
||||||
|
|||||||
@ -10,12 +10,11 @@ class DiveCartesianAxis;
|
|||||||
|
|
||||||
class DivePercentageItem : public QGraphicsPixmapItem {
|
class DivePercentageItem : public QGraphicsPixmapItem {
|
||||||
public:
|
public:
|
||||||
DivePercentageItem(const DiveCartesianAxis &hAxis, const DiveCartesianAxis &vAxis, double dpr);
|
DivePercentageItem(const DiveCartesianAxis &hAxis, const DiveCartesianAxis &vAxis);
|
||||||
void replot(const dive *d, const divecomputer *dc, const plot_info &pi);
|
void replot(const dive *d, const divecomputer *dc, const plot_info &pi);
|
||||||
private:
|
private:
|
||||||
const DiveCartesianAxis &hAxis;
|
const DiveCartesianAxis &hAxis;
|
||||||
const DiveCartesianAxis &vAxis;
|
const DiveCartesianAxis &vAxis;
|
||||||
double dpr;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@ -49,7 +49,7 @@ DivePixmaps::DivePixmaps(int dpr) : dpr(dpr)
|
|||||||
// The transparen pixmap is a very obscure feature to enable tooltips without showing a pixmap.
|
// The transparen pixmap is a very obscure feature to enable tooltips without showing a pixmap.
|
||||||
// See code in diveeventitem.cpp. This should probably be replaced by a different mechanism.
|
// See code in diveeventitem.cpp. This should probably be replaced by a different mechanism.
|
||||||
QPixmap transparentPixmap(lrint(4 * dprf), lrint(20 * dprf));
|
QPixmap transparentPixmap(lrint(4 * dprf), lrint(20 * dprf));
|
||||||
transparentPixmap.fill(QColor::fromRgbF(1.0, 1.0, 1.0, 0.01));
|
transparentPixmap.fill(QColor::fromRgbF(1.0f, 1.0f, 1.0f, 0.01f));
|
||||||
}
|
}
|
||||||
|
|
||||||
static std::vector<std::shared_ptr<const DivePixmaps>> cache;
|
static std::vector<std::shared_ptr<const DivePixmaps>> cache;
|
||||||
|
|||||||
@ -144,7 +144,7 @@ ProfileScene::ProfileScene(double dpr, bool printMode, bool isGrayscale) :
|
|||||||
heartBeatItem(createItem<DiveHeartrateItem>(*heartBeatAxis,
|
heartBeatItem(createItem<DiveHeartrateItem>(*heartBeatAxis,
|
||||||
[](const plot_data &item) { return (double)item.heartbeat; },
|
[](const plot_data &item) { return (double)item.heartbeat; },
|
||||||
1, dpr)),
|
1, dpr)),
|
||||||
percentageItem(new DivePercentageItem(*timeAxis, *percentageAxis, dpr)),
|
percentageItem(new DivePercentageItem(*timeAxis, *percentageAxis)),
|
||||||
tankItem(new TankItem(*timeAxis, dpr)),
|
tankItem(new TankItem(*timeAxis, dpr)),
|
||||||
pixmaps(getDivePixmaps(dpr))
|
pixmaps(getDivePixmaps(dpr))
|
||||||
{
|
{
|
||||||
|
|||||||
@ -348,7 +348,8 @@ if [[ $PLATFORM = Darwin && "$BUILD_DEPS" == "1" ]] ; then
|
|||||||
pushd openssl
|
pushd openssl
|
||||||
mkdir -p build
|
mkdir -p build
|
||||||
cd build
|
cd build
|
||||||
../Configure --prefix="$INSTALL_ROOT" --openssldir="$INSTALL_ROOT" "$OLDER_MAC" darwin64-x86_64-cc
|
if [ $(arch) == "arm64" ] ; then OS_ARCH=darwin64-arm64-cc ; else OS_ARCH=darwin64-x86_64-cc; fi
|
||||||
|
../Configure --prefix="$INSTALL_ROOT" --openssldir="$INSTALL_ROOT" "$OLDER_MAC" $OS_ARCH
|
||||||
make depend
|
make depend
|
||||||
# all the tests fail because the assume that openssl is already installed. Odd? Still thinks work
|
# all the tests fail because the assume that openssl is already installed. Odd? Still thinks work
|
||||||
make -j4 -k
|
make -j4 -k
|
||||||
@ -436,6 +437,7 @@ if [[ $PLATFORM = Darwin && "$BUILD_DEPS" == "1" ]] ; then
|
|||||||
|
|
||||||
./${SRC_DIR}/scripts/get-dep-lib.sh single . libmtp
|
./${SRC_DIR}/scripts/get-dep-lib.sh single . libmtp
|
||||||
pushd libmtp
|
pushd libmtp
|
||||||
|
patch -p1 < ../${SRC_DIR}/scripts/libmtp.patch
|
||||||
echo 'N' | NOCONFIGURE="1" bash ./autogen.sh
|
echo 'N' | NOCONFIGURE="1" bash ./autogen.sh
|
||||||
mkdir -p build
|
mkdir -p build
|
||||||
cd build
|
cd build
|
||||||
|
|||||||
@ -6,8 +6,8 @@ CURRENT_LIBZ="v1.2.11"
|
|||||||
CURRENT_LIBZIP="rel-1-5-1"
|
CURRENT_LIBZIP="rel-1-5-1"
|
||||||
CURRENT_LIBGIT2="v1.0.1"
|
CURRENT_LIBGIT2="v1.0.1"
|
||||||
CURRENT_LIBCURL="curl-7_54_1"
|
CURRENT_LIBCURL="curl-7_54_1"
|
||||||
CURRENT_LIBUSB="v1.0.21"
|
CURRENT_LIBUSB="v1.0.25"
|
||||||
CURRENT_OPENSSL="OpenSSL_1_1_1h"
|
CURRENT_OPENSSL="OpenSSL_1_1_1m"
|
||||||
CURRENT_LIBSSH2="libssh2-1.8.0"
|
CURRENT_LIBSSH2="libssh2-1.8.0"
|
||||||
CURRENT_XSLT="v1.1.34"
|
CURRENT_XSLT="v1.1.34"
|
||||||
CURRENT_SQLITE="3190200"
|
CURRENT_SQLITE="3190200"
|
||||||
@ -103,7 +103,7 @@ fi
|
|||||||
|
|
||||||
# FIX FOR ANDROID,
|
# FIX FOR ANDROID,
|
||||||
if [ "$PLATFORM" == "singleAndroid" ] ; then
|
if [ "$PLATFORM" == "singleAndroid" ] ; then
|
||||||
CURRENT_OPENSSL="OpenSSL_1_1_1h"
|
CURRENT_OPENSSL="OpenSSL_1_1_1m"
|
||||||
# If changing the openSSL version here, make sure to change it in packaging/android/variables.sh also.
|
# If changing the openSSL version here, make sure to change it in packaging/android/variables.sh also.
|
||||||
fi
|
fi
|
||||||
# no curl and old libs (never version breaks)
|
# no curl and old libs (never version breaks)
|
||||||
|
|||||||
13
scripts/libmtp.patch
Normal file
13
scripts/libmtp.patch
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
diff --git a/libmtp.pc.in b/libmtp.pc.in
|
||||||
|
index 93c7bbf..ff817e1 100644
|
||||||
|
--- a/libmtp.pc.in
|
||||||
|
+++ b/libmtp.pc.in
|
||||||
|
@@ -10,6 +10,6 @@ Description: libmtp is a library for accessing Media Transfer Protocol devices
|
||||||
|
Version: @VERSION@
|
||||||
|
Requires.private: @LIBUSB_REQUIRES@
|
||||||
|
Conflicts:
|
||||||
|
-Libs: -L${libdir} -lmtp
|
||||||
|
+Libs: -L${libdir} -lmtp @OSFLAGS@
|
||||||
|
Libs.private: @LIBS@
|
||||||
|
-Cflags: -I${includedir} @OSFLAGS@
|
||||||
|
+Cflags: -I${includedir}
|
||||||
@ -87,7 +87,7 @@ void RegressionItem::updatePosition()
|
|||||||
img->fill(Qt::transparent);
|
img->fill(Qt::transparent);
|
||||||
if (confidence) {
|
if (confidence) {
|
||||||
QColor col(regressionItemColor);
|
QColor col(regressionItemColor);
|
||||||
col.setAlphaF(reg.r2);
|
col.setAlphaF((float)reg.r2);
|
||||||
painter->setPen(Qt::NoPen);
|
painter->setPen(Qt::NoPen);
|
||||||
painter->setBrush(QBrush(col));
|
painter->setBrush(QBrush(col));
|
||||||
painter->drawPolygon(poly);
|
painter->drawPolygon(poly);
|
||||||
|
|||||||
@ -113,7 +113,7 @@ template<> int invalid_value<int>()
|
|||||||
}
|
}
|
||||||
template<> double invalid_value<double>()
|
template<> double invalid_value<double>()
|
||||||
{
|
{
|
||||||
return std::numeric_limits<double>::quiet_NaN();
|
return NaN;
|
||||||
}
|
}
|
||||||
template<> QString invalid_value<QString>()
|
template<> QString invalid_value<QString>()
|
||||||
{
|
{
|
||||||
@ -121,7 +121,6 @@ template<> QString invalid_value<QString>()
|
|||||||
}
|
}
|
||||||
template<> StatsQuartiles invalid_value<StatsQuartiles>()
|
template<> StatsQuartiles invalid_value<StatsQuartiles>()
|
||||||
{
|
{
|
||||||
double NaN = std::numeric_limits<double>::quiet_NaN();
|
|
||||||
return { std::vector<dive *>(), NaN, NaN, NaN, NaN, NaN };
|
return { std::vector<dive *>(), NaN, NaN, NaN, NaN, NaN };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user