the attached two patches adds the ability to export only selected dives
with the world-map exporter, also adds shortcuts to exporting dialog for
consistency.
--
Regards,
Gehad Elrobey
>From 0588aca86cb2a073b25b9259b9d2574bb81d65f6 Mon Sep 17 00:00:00 2001
From: Gehad elrobey <[email protected]>
Date: Wed, 21 May 2014 15:23:05 +0300
Subject: [PATCH 1/2] The ability to export selected dives only in worldmap
exporter.
This patch adds the ability to export selected dives only in the
worldmap exporter, after Miika added the export dialog and exporting
selected dives only become among choices while exporting.
Signed-off-by: Gehad elrobey <[email protected]>
---
qt-ui/divelogexportdialog.cpp | 8 +-------
worldmap-save.c | 20 +++++++++++---------
worldmap-save.h | 2 +-
3 files changed, 13 insertions(+), 17 deletions(-)
diff --git a/qt-ui/divelogexportdialog.cpp b/qt-ui/divelogexportdialog.cpp
index 3ac9638..73f9067 100644
--- a/qt-ui/divelogexportdialog.cpp
+++ b/qt-ui/divelogexportdialog.cpp
@@ -40,13 +40,7 @@ void DiveLogExportDialog::on_buttonBox_accepted()
filename = QFileDialog::getSaveFileName(this, tr("Export World Map"), fi.absolutePath(),
tr("HTML files (*.html)"));
if (!filename.isNull() && !filename.isEmpty())
- export_worldmap_HTML(filename.toUtf8().data());
- return;
- } else if (ui->exportWorldMap->isChecked()) {
- filename = QFileDialog::getSaveFileName(this, tr("Export World Map"), fi.absolutePath(),
- tr("HTML files (*.html)"));
- if (!filename.isNull() && !filename.isEmpty())
- export_worldmap_HTML(filename.toUtf8().data());
+ export_worldmap_HTML(filename.toUtf8().data(), ui->exportSelected->isChecked());
return;
}
diff --git a/worldmap-save.c b/worldmap-save.c
index e867846..21a0810 100644
--- a/worldmap-save.c
+++ b/worldmap-save.c
@@ -83,14 +83,16 @@ void put_HTML_notes(struct membuffer *b, struct dive *dive)
}
}
-void writeMarkers(struct membuffer *b)
+void writeMarkers(struct membuffer *b, const bool selected_only)
{
int i, dive_no = 0;
struct dive *dive;
for_each_dive(i, dive) {
- /*export selected dives only ?*/
-
+ if (selected_only) {
+ if (!dive->selected)
+ continue;
+ }
if (dive->latitude.udeg == 0 && dive->longitude.udeg == 0)
continue;
@@ -120,7 +122,7 @@ void insert_css(struct membuffer *b)
put_format(b, "<style type=\"text/css\">%s</style>\n", css);
}
-void insert_javascript(struct membuffer *b)
+void insert_javascript(struct membuffer *b, const bool selected_only)
{
put_string(b, "<script type=\"text/javascript\" src=\"");
put_string(b, getGoogleApi());
@@ -129,25 +131,25 @@ void insert_javascript(struct membuffer *b)
put_string(b, "rotateControl: false,\n\tstreetViewControl: false,\n\tmapTypeControl: false\n};\n");
put_string(b, "map = new google.maps.Map(document.getElementById(\"map-canvas\"),mapOptions);\nvar markers = new Array();");
put_string(b, "\nvar infowindows = new Array();\nvar temp;\nvar tempinfowindow;\n");
- writeMarkers(b);
+ writeMarkers(b, selected_only);
put_string(b, "\nfor(var i=0;i<markers.length;i++)\n\tmarkers[i].setMap(map);\n}\n");
put_string(b, "google.maps.event.addDomListener(window, 'load', initialize);</script>\n");
}
-void export(struct membuffer *b)
+void export(struct membuffer *b, const bool selected_only)
{
insert_html_header(b);
insert_css(b);
- insert_javascript(b);
+ insert_javascript(b, selected_only);
put_string(b, "\t</head>\n<body>\n<div id=\"map-canvas\"></div>\n</body>\n</html>");
}
-void export_worldmap_HTML(const char *file_name)
+void export_worldmap_HTML(const char *file_name, const bool selected_only)
{
FILE *f;
struct membuffer buf = { 0 };
- export(&buf);
+ export(&buf, selected_only);
f = fopen(file_name, "w+");
if (!f)
diff --git a/worldmap-save.h b/worldmap-save.h
index 72363e4..2aeaecd 100644
--- a/worldmap-save.h
+++ b/worldmap-save.h
@@ -5,7 +5,7 @@
extern "C" {
#endif
-extern void export_worldmap_HTML(const char* x);
+extern void export_worldmap_HTML(const char* file_name, const bool selected_only);
#ifdef __cplusplus
--
1.9.1
>From 56acac51e4050a9989d06fcfe69ec717e84a778f Mon Sep 17 00:00:00 2001
From: Gehad elrobey <[email protected]>
Date: Wed, 21 May 2014 15:41:46 +0300
Subject: [PATCH 2/2] Shortcuts for the exporting window.
Adding the ability to close the exporting window, also Quit subsurface
with this window in front, for consistency.
Signed-off-by: Gehad elrobey <[email protected]>
---
qt-ui/divelogexportdialog.cpp | 5 +++++
qt-ui/mainwindow.cpp | 2 +-
2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/qt-ui/divelogexportdialog.cpp b/qt-ui/divelogexportdialog.cpp
index 73f9067..06d1757 100644
--- a/qt-ui/divelogexportdialog.cpp
+++ b/qt-ui/divelogexportdialog.cpp
@@ -1,5 +1,6 @@
#include <QFileDialog>
#include <QString>
+#include <QShortcut>
#include "mainwindow.h"
#include "divelogexportdialog.h"
@@ -12,6 +13,10 @@ DiveLogExportDialog::DiveLogExportDialog(QWidget *parent) :
ui(new Ui::DiveLogExportDialog)
{
ui->setupUi(this);
+ QShortcut *quit = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_Q), this);
+ connect(quit, SIGNAL(activated()), parent, SLOT(close()));
+ QShortcut *close = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_W), this);
+ connect(close, SIGNAL(activated()), this, SLOT(close()));
}
DiveLogExportDialog::~DiveLogExportDialog()
diff --git a/qt-ui/mainwindow.cpp b/qt-ui/mainwindow.cpp
index d70e7b3..b00d5e8 100644
--- a/qt-ui/mainwindow.cpp
+++ b/qt-ui/mainwindow.cpp
@@ -1198,6 +1198,6 @@ void MainWindow::on_profScaled_clicked(bool triggered)
void MainWindow::on_actionExport_triggered()
{
- DiveLogExportDialog *diveLogExport = new DiveLogExportDialog();
+ DiveLogExportDialog *diveLogExport = new DiveLogExportDialog(this);
diveLogExport->show();
}
--
1.9.1
_______________________________________________
subsurface mailing list
[email protected]
http://lists.hohndel.org/cgi-bin/mailman/listinfo/subsurface