summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--qt-ui/profile/diveeventitem.cpp2
-rw-r--r--qt-ui/profile/profilewidget2.cpp32
-rw-r--r--qt-ui/profile/profilewidget2.h1
3 files changed, 34 insertions, 1 deletions
diff --git a/qt-ui/profile/diveeventitem.cpp b/qt-ui/profile/diveeventitem.cpp
index 3f75ab10a..54e3e4cbf 100644
--- a/qt-ui/profile/diveeventitem.cpp
+++ b/qt-ui/profile/diveeventitem.cpp
@@ -59,7 +59,7 @@ void DiveEventItem::setupPixmap()
#define EVENT_PIXMAP(PIX) QPixmap(QString(PIX)).scaled(20, 20, Qt::KeepAspectRatio, Qt::SmoothTransformation)
if (!internalEvent->name) {
setPixmap(EVENT_PIXMAP(":warning"));
- } else if ((strcmp(internalEvent->name, "bookmark") == 0)) {
+ } else if (internalEvent->type == SAMPLE_EVENT_BOOKMARK) {
setPixmap(EVENT_PIXMAP(":flag"));
} else if (strcmp(internalEvent->name, "heading") == 0) {
setPixmap(EVENT_PIXMAP(":flag"));
diff --git a/qt-ui/profile/profilewidget2.cpp b/qt-ui/profile/profilewidget2.cpp
index a58244689..922836d65 100644
--- a/qt-ui/profile/profilewidget2.cpp
+++ b/qt-ui/profile/profilewidget2.cpp
@@ -23,6 +23,7 @@
#include <QScrollBar>
#include <QtCore/qmath.h>
#include <QMessageBox>
+#include <QInputDialog>
#ifndef QT_NO_DEBUG
#include <QTableView>
@@ -709,6 +710,13 @@ void ProfileWidget2::contextMenuEvent(QContextMenuEvent *event)
action->setData(QVariant::fromValue<void *>(item));
connect(action, SIGNAL(triggered(bool)), this, SLOT(hideEvents()));
m.addAction(action);
+ if(item->getEvent()->type == SAMPLE_EVENT_BOOKMARK){
+ action = new QAction(&m);
+ action->setText(tr("Edit name"));
+ action->setData(QVariant::fromValue<void *>(item));
+ connect(action, SIGNAL(triggered(bool)), this, SLOT(editName()));
+ m.addAction(action);
+ }
}
bool some_hidden = false;
for (int i = 0; i < evn_used; i++) {
@@ -810,3 +818,27 @@ void ProfileWidget2::setPrintMode(bool mode, bool grayscale)
printMode = mode;
isGrayscale = mode ? grayscale : false;
}
+
+void ProfileWidget2::editName()
+{
+ QAction *action = qobject_cast<QAction *>(sender());
+ DiveEventItem *item = static_cast<DiveEventItem *>(action->data().value<void *>());
+ struct event *event = item->getEvent();
+ bool ok;
+ QString newName = QInputDialog::getText(MainWindow::instance(), tr("Edit name of bookmark"),
+ tr("Custom name:"), QLineEdit::Normal,
+ event->name, &ok);
+ if(ok && !newName.isEmpty()){
+ if(newName.length() > 22){//longer names will display as garbage.
+ QMessageBox lengthWarning;
+ lengthWarning.setText("Name is too long!");
+ lengthWarning.exec();
+ return;
+ }
+ const char* temp;
+ temp = newName.toStdString().c_str();
+ strcpy(event->name, temp);
+ remember_event(temp);
+ }
+ replot();
+}
diff --git a/qt-ui/profile/profilewidget2.h b/qt-ui/profile/profilewidget2.h
index eb7486e8d..d00cb26c1 100644
--- a/qt-ui/profile/profilewidget2.h
+++ b/qt-ui/profile/profilewidget2.h
@@ -79,6 +79,7 @@ slots: // Necessary to call from QAction's signals.
void hideEvents();
void unhideEvents();
void removeEvent();
+ void editName();
protected:
virtual void resizeEvent(QResizeEvent *event);