diff options
-rw-r--r-- | qt-ui/profile/diveeventitem.cpp | 2 | ||||
-rw-r--r-- | qt-ui/profile/profilewidget2.cpp | 32 | ||||
-rw-r--r-- | qt-ui/profile/profilewidget2.h | 1 |
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); |