File indexing completed on 2024-04-28 15:39:05
0001 // SPDX-FileCopyrightText: 2020 Tobias Leupold <tl at stonemx dot de> 0002 // 0003 // SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0004 0005 // Local includes 0006 #include "BookmarksWidget.h" 0007 #include "SharedObjects.h" 0008 #include "Settings.h" 0009 #include "BookmarksList.h" 0010 #include "CoordinatesFormatter.h" 0011 0012 // KDE includes 0013 #include <KLocalizedString> 0014 0015 // Qt includes 0016 #include <QVBoxLayout> 0017 #include <QLabel> 0018 0019 BookmarksWidget::BookmarksWidget(SharedObjects *sharedObjects, QWidget *parent) 0020 : QWidget(parent), 0021 m_formatter(sharedObjects->coordinatesFormatter()) 0022 { 0023 auto *layout = new QVBoxLayout(this); 0024 0025 m_bookmarksList = new BookmarksList(sharedObjects); 0026 connect(m_bookmarksList, &BookmarksList::bookmarksChanged, 0027 this, &BookmarksWidget::bookmarksChanged); 0028 connect(m_bookmarksList, &BookmarksList::showInfo, this, &BookmarksWidget::showInfo); 0029 layout->addWidget(m_bookmarksList); 0030 0031 m_info = new QLabel; 0032 layout->addWidget(m_info); 0033 } 0034 0035 const QHash<QString, Coordinates> *BookmarksWidget::bookmarks() const 0036 { 0037 return m_bookmarksList->bookmarks(); 0038 } 0039 0040 void BookmarksWidget::showInfo(const Coordinates &coordinates) 0041 { 0042 if (! coordinates.isSet()) { 0043 m_info->clear(); 0044 } else { 0045 m_info->setText(i18n("Position: %1, %2; Altitude: %3 m", 0046 m_formatter->lon(coordinates), 0047 m_formatter->lat(coordinates), 0048 m_formatter->alt(coordinates))); 0049 } 0050 }